VirtualBox

Changeset 30427 in vbox for trunk/src/VBox/Additions/WINNT


Ignore:
Timestamp:
Jun 24, 2010 12:28:50 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
63062
Message:

Windows guest additions: fixed return status in VBoxMouse.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/MouseFilter/VBoxMouse.cpp

    r28800 r30427  
    471471    // to be set.
    472472    //
    473     KeSetEvent(event, 0, FALSE);
     473    // If the lower driver didn't return STATUS_PENDING, we don't need to
     474    // set the event because we won't be waiting on it.
     475    // This optimization avoids grabbing the dispatcher lock and improves perf.
     476    //
     477    if (Irp->PendingReturned == TRUE)
     478        KeSetEvent(event, 0, FALSE);
    474479
    475480    return STATUS_MORE_PROCESSING_REQUIRED;
     
    841846               Executive, // Waiting for reason of a driver
    842847               KernelMode, // Waiting in kernel mode
    843                FALSE, // No allert
     848               FALSE, // No alert
    844849               NULL); // No timeout
     850
     851            // Transfer the status from the IOSB
     852            status = Irp->IoStatus.Status;
    845853        }
    846854
    847855        dprintf(("VBoxMouse_PnP: Status: %x, irp status: %x\n", Irp->IoStatus.Status));
    848856
    849         if (NT_SUCCESS(status) && NT_SUCCESS(Irp->IoStatus.Status)) {
     857        if (NT_SUCCESS(status)) {
    850858            devExt->Started = TRUE;
    851859            devExt->Removed = FALSE;
     
    858866        //
    859867        Irp->IoStatus.Status = status;
    860         Irp->IoStatus.Information = 0;
    861868        IoCompleteRequest(Irp, IO_NO_INCREMENT);
    862869
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette