VirtualBox

Ignore:
Timestamp:
Jul 17, 2008 1:08:56 PM (17 years ago)
Author:
vboxsync
Message:

Bumped the SUPDRV_IOC_VERSION major as the changes to the fast path on NT isn't backwards compatible. Made VMMR0EntryFast return void.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp

    r10720 r10724  
    287287     * Deal with the two high-speed IOCtl that takes it's arguments from
    288288     * 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.
    289293     */
    290294    ULONG ulCmd = pStack->Parameters.DeviceIoControl.IoControlCode;
     
    293297        ||  ulCmd == SUP_IOCTL_FAST_DO_NOP)
    294298    {
    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 input
    299          * or write to output parameters!
    300          */
    301 
    302299        /* Raise the IRQL to DISPATCH_LEVEl to prevent Windows from rescheduling us to another CPU/core. */
    303300        Assert(KeGetCurrentIrql() <= DISPATCH_LEVEL);
     301        KIRQL oldIrql;
    304302        KeRaiseIrql(DISPATCH_LEVEL, &oldIrql);
    305         rc = supdrvIOCtlFast(ulCmd, pDevExt, pSession);
     303        int rc = supdrvIOCtlFast(ulCmd, pDevExt, pSession);
    306304        KeLowerIrql(oldIrql);
    307305
    308306        /* 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;
    310308        IoCompleteRequest(pIrp, IO_NO_INCREMENT);
    311309        return rcNt;
Note: See TracChangeset for help on using the changeset viewer.

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