Difference between revisions of "Techwiki:Win32k/display driver loading"
ThePhysicist (talk | contribs) |
|||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
* Installed devices: "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\VIDEO". values are: | * Installed devices: "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\VIDEO". values are: | ||
** "MaxObjectNumber": Value of type REG_DWORD, containing the max device number <maxdev>. | ** "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\Video0" .. "\Device\Video<maxdev>": Values of type REG_SZ, each containing the registry key for the device. | ||
− | ** "\Device\Disc": | + | ** "\Device\Disc": Disconnected Graphics Device (for Terminal Services). |
** "VgaCompatible": value of type REG_SZ, containing the device name of the vga compatible device. | ** "VgaCompatible": value of type REG_SZ, containing the device name of the vga compatible device. | ||
− | * | + | * Legacy (2k) Device configuration key: "\Registry\Machine\System\CurrentControlSet\Hardware Profiles\Current\System\CurrentControlSet\Services\<ServiceName>\Device0". This key does not exist on Windows 2003. Probably also not on XP. |
+ | * New (XP) Device configuration key: "\Registry\Machine\System\CurrentControlSet\Control\Video\<VideoId>\0000". Where <VideoId> is a local UUID, created by videoprt the first time the device is started. The VideoId string is stored in the registry under the device's hardware key (HKLM\System\CurrentControlSet\Enum\...) | ||
+ | * New (XP) Current settings key: "\\Registry\\Machine\\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO\{19D0ECD0-F5D9-4A4B-8005-36253C8D799D}\0000" | ||
** "Device Description", type is REG_SZ, human readable name ("NVIDIA GeForce 6150") | ** "Device Description", type is REG_SZ, human readable name ("NVIDIA GeForce 6150") | ||
** "InstalledDisplayDrivers": REG_MULTI_SZ, all display drivers used for this device. | ** "InstalledDisplayDrivers": REG_MULTI_SZ, all display drivers used for this device. | ||
** "VgaCompatible": REG_DWORD, 0 or 1 | ** "VgaCompatible": REG_DWORD, 0 or 1 | ||
** "DefaultSettings.BitsPerPel", "DefaultSettings.XResolution", "DefaultSettings.YResolution", ... | ** "DefaultSettings.BitsPerPel", "DefaultSettings.XResolution", "DefaultSettings.YResolution", ... | ||
− | |||
* "\Registry\Machine\System\CurrentControlSet\Control\Video\{19D0ECD0-F5D9-4A4B-8005-36253C8D799D}\Video" | * "\Registry\Machine\System\CurrentControlSet\Control\Video\{19D0ECD0-F5D9-4A4B-8005-36253C8D799D}\Video" | ||
Line 18: | Line 18: | ||
* "\REGISTRY\Machine\System\CurrentControlSet\Services\TSDDD\Device0" (for "\Device\Disc") | * "\REGISTRY\Machine\System\CurrentControlSet\Services\TSDDD\Device0" (for "\Device\Disc") | ||
− | |||
* The driver registry path passed to the driver entry (videoprt): "\\Registry\\Machine\\System\\ControlSet001\\Services\\<ServiceName>" | * 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 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" | * 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}" | + | ** Key value "VideoId", type REG_SZ, contains the GUID string of the video device: "{19D0ECD0-F5D9-4A4B-8005-36253C8D799D}". Thiskey is created by videoprt by generating a new local UUID, when the value is not present yet. |
** The parent key contains a REG_SZ value named "ClassGUID", that contains the class GUID | ** 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>" | * The class registry key: "\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Class\\<class GUID>\\<dev number>" | ||
+ | |||
+ | |||
+ | === Some references === | ||
+ | * [https://docs.microsoft.com/en-us/windows-hardware/drivers/storage/registry-entries-for-storport-miniport-drivers Registry Entries for StorPort Miniport Drivers (MSDN)] |
Latest revision as of 14:49, 2 January 2019
- 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": Disconnected Graphics Device (for Terminal Services).
- "VgaCompatible": value of type REG_SZ, containing the device name of the vga compatible device.
- Legacy (2k) Device configuration key: "\Registry\Machine\System\CurrentControlSet\Hardware Profiles\Current\System\CurrentControlSet\Services\<ServiceName>\Device0". This key does not exist on Windows 2003. Probably also not on XP.
- New (XP) Device configuration key: "\Registry\Machine\System\CurrentControlSet\Control\Video\<VideoId>\0000". Where <VideoId> is a local UUID, created by videoprt the first time the device is started. The VideoId string is stored in the registry under the device's hardware key (HKLM\System\CurrentControlSet\Enum\...)
- New (XP) Current settings key: "\\Registry\\Machine\\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO\{19D0ECD0-F5D9-4A4B-8005-36253C8D799D}\0000"
- "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", ...
- "\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")
- 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}". Thiskey is created by videoprt by generating a new local UUID, when the value is not present yet.
- 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>"