VirtualBox

Changeset 25021 in vbox


Ignore:
Timestamp:
Nov 26, 2009 4:03:39 PM (15 years ago)
Author:
vboxsync
Message:

VBoxGuest: Fixed runtime OS detection on Windows 7.

Location:
trunk/src/VBox/Additions/WINNT/VBoxGuest
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/VBoxGuest/Helper.cpp

    r18171 r25021  
    193193}
    194194
     195/** @todo maybe we should drop this routine entirely later because we detecting
     196 *        the running OS via VBoxService in ring 3 using guest properties since a while. */
    195197NTSTATUS hlpVBoxReportGuestInfo (PVBOXGUESTDEVEXT pDevExt)
    196198{
     
    223225                req->guestInfo.osType = VBOXOSTYPE_WinVista;
    224226                break;
     227            case WIN7:
     228                req->guestInfo.osType = VBOXOSTYPE_Win7;
     229                break;
    225230            default:
    226231                /* we don't know, therefore NT family */
  • trunk/src/VBox/Additions/WINNT/VBoxGuest/VBoxGuest.cpp

    r23916 r25021  
    126126    ULONG buildNumber;
    127127    PsGetVersion(&majorVersion, &minorVersion, &buildNumber, NULL);
    128     dprintf(("VBoxGuest::DriverEntry: running on Windows NT version %d.%d, build %d\n", majorVersion, minorVersion, buildNumber));
     128    dprintf(("VBoxGuest::DriverEntry: Running on Windows NT version %d.%d, build %d\n", majorVersion, minorVersion, buildNumber));
    129129#ifdef DEBUG
    130130    testVBoxGuest();
     
    132132    switch (majorVersion)
    133133    {
    134         case 6:
    135             winVersion = WINVISTA;
     134        case 6: /* Windows Vista or Windows 7 (based on minor ver) */
     135            switch (minorVersion)
     136            {
     137                case 0: /* Note: Also could be Windows 2008 Server! */
     138                    winVersion = WINVISTA;
     139                    break;
     140                case 1: /* Note: Also could be Windows 2008 Server R2! */
     141                    winVersion = WIN7;
     142                    break;
     143                default:
     144                    dprintf(("VBoxGuest::DriverEntry: Unknown version of Windows, refusing!\n"));
     145                    return STATUS_DRIVER_UNABLE_TO_LOAD;
     146            }
    136147            break;
    137148        case 5:
     
    148159                    break;
    149160                default:
    150                     dprintf(("VBoxGuest::DriverEntry: unknown version of Windows, refusing!\n"));
     161                    dprintf(("VBoxGuest::DriverEntry: Unknown version of Windows, refusing!\n"));
    151162                    return STATUS_DRIVER_UNABLE_TO_LOAD;
    152163            }
     
    156167            break;
    157168        default:
    158             dprintf(("VBoxGuest::DriverEntry: NT4 required!\n"));
     169            dprintf(("VBoxGuest::DriverEntry: At least Windows NT4 required!\n"));
    159170            return STATUS_DRIVER_UNABLE_TO_LOAD;
    160171    }
     
    18391850                dprintf(("VBoxGuest::reserveHypervisorMemory: VMMDevReq_DeregisterPatchMemory error!"
    18401851                            "rc = %d, VMMDev rc = %Rrc\n", rc, req->header.rc));
    1841                 /* We intentially leak the memory object here as there still could 
     1852                /* We intentially leak the memory object here as there still could
    18421853                 * be references to it!!!
    18431854                 */
  • trunk/src/VBox/Additions/WINNT/VBoxGuest/VBoxGuest_Internal.h

    r21644 r25021  
    238238    WINXP    = 3,
    239239    WIN2K3   = 4,
    240     WINVISTA = 5
     240    WINVISTA = 5,
     241    WIN7     = 6,
    241242} winVersion_t;
    242243extern winVersion_t winVersion;
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