Changeset 10724 in vbox for trunk/src/VBox/HostDrivers/Support/win
- Timestamp:
- Jul 17, 2008 1:08:56 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp
r10720 r10724 287 287 * Deal with the two high-speed IOCtl that takes it's arguments from 288 288 * the session and iCmd, and only returns a VBox status code. 289 * 290 * Note: The previous method of returning the rc prior to IDC version 291 * 7.4 has been abandond, we're no longer compatible with that 292 * interface. 289 293 */ 290 294 ULONG ulCmd = pStack->Parameters.DeviceIoControl.IoControlCode; … … 293 297 || ulCmd == SUP_IOCTL_FAST_DO_NOP) 294 298 { 295 KIRQL oldIrql;296 int rc;297 298 /* We're here with METHOD_NEITHER, which means no parameter validation has been performed. Do not use input299 * or write to output parameters!300 */301 302 299 /* Raise the IRQL to DISPATCH_LEVEl to prevent Windows from rescheduling us to another CPU/core. */ 303 300 Assert(KeGetCurrentIrql() <= DISPATCH_LEVEL); 301 KIRQL oldIrql; 304 302 KeRaiseIrql(DISPATCH_LEVEL, &oldIrql); 305 rc = supdrvIOCtlFast(ulCmd, pDevExt, pSession);303 int rc = supdrvIOCtlFast(ulCmd, pDevExt, pSession); 306 304 KeLowerIrql(oldIrql); 307 305 308 306 /* Complete the I/O request. */ 309 NTSTATUS rcNt = pIrp->IoStatus.Status = STATUS_SUCCESS;307 NTSTATUS rcNt = pIrp->IoStatus.Status = RT_SUCCESS(rc) ? STATUS_SUCCESS : STATUS_INVALID_PARAMETER; 310 308 IoCompleteRequest(pIrp, IO_NO_INCREMENT); 311 309 return rcNt;
Note:
See TracChangeset
for help on using the changeset viewer.