Difference between revisions of "Techwiki:Win32k/display driver loading"

From ReactOS Wiki
Jump to: navigation, search
Line 9: Line 9:
 
* Each device key:
 
* 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}\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")
 
** "\REGISTRY\Machine\System\CurrentControlSet\Services\TSDDD\Device0" (for "\Device\Disc")
 
*** "Device Description", type is REG_SZ, human readable name ("NVIDIA GeForce 6150")
 
*** "Device Description", type is REG_SZ, human readable name ("NVIDIA GeForce 6150")
Line 19: Line 21:
 
* Current settings key:
 
* Current settings key:
 
** "HKLM\SYSTEM\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO\{19D0ECD0-F5D9-4A4B-8005-36253C8D799D}\0000"
 
** "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>"
 +
"

Revision as of 13:29, 14 November 2013


  • 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>"

"