Techwiki:Win32k/display driver loading

From ReactOS Wiki
Revision as of 13:29, 14 November 2013 by ThePhysicist (talk | contribs)
Jump to: navigation, search

  • Installed devices: "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\VIDEO". values are:
    • "MaxObjectNumber": Value of type REG_DWORD, containing the max device number <maxdev>.
    • "\Device\Video0" .. "\Device\Video<maxdev>": Values of type REG_SZ, each containing the registry key for the device.
    • "\Device\Disc": ?
    • "VgaCompatible": value of type REG_SZ, containing the device name of the vga compatible device.
  • Each device key:
    • "\Registry\Machine\System\CurrentControlSet\Control\Video\{19D0ECD0-F5D9-4A4B-8005-36253C8D799D}\0000"
    • "\Registry\Machine\System\CurrentControlSet\Control\Video\{19D0ECD0-F5D9-4A4B-8005-36253C8D799D}\Video"
      • Contains REG_SZ "Service" -> name of the display driver service
    • "\REGISTRY\Machine\System\CurrentControlSet\Services\TSDDD\Device0" (for "\Device\Disc")
      • "Device Description", type is REG_SZ, human readable name ("NVIDIA GeForce 6150")
      • "InstalledDisplayDrivers": REG_MULTI_SZ, all display drivers used for this device.
      • "VgaCompatible": REG_DWORD, 0 or 1
      • "DefaultSettings.BitsPerPel", "DefaultSettings.XResolution", "DefaultSettings.YResolution", ...

Each of type REG_DWORD (Settings are not current settings!)

  • Current settings key:
    • "HKLM\SYSTEM\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO\{19D0ECD0-F5D9-4A4B-8005-36253C8D799D}\0000"
  • The driver registry path passed to the driver entry (videoprt): "\\Registry\\Machine\\System\\ControlSet001\\Services\\<ServiceName>"
  • The device profile registry key can be generated from the service name: "\\Registry\\Machine\\System\\CurrentControlSet\\Hardware Profiles\\Current\\System\\CurrentControlSet\\Services\<ServiceName>\\Device0"
  • The device registry key can be queried with IoOpenDeviceRegistryKey, passing the device object: "\\Registry\\Machine\\System\ControlSet001\\Enum\\PCI\\VEN_10DE&DEV_10C3&SUBSYS_00000000&REV_A2\\4&1b94b7da&0&0020\\Device Parameters"
    • Key value "VideoId", type REG_SZ, contains the GUID string of the video device: "{19D0ECD0-F5D9-4A4B-8005-36253C8D799D}"
    • The parent key contains a REG_SZ value named "ClassGUID", that contains the class GUID
  • The class registry key: "\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Class\\<class GUID>\\<dev number>"