Windows Server: Microsoft driver not registered properly? - Page 1
Forum section: electronics / general

author: Manul
author_rank: Super Contributor
timestamp: December 25, 2020, 02:58:07 am
content: Hello,If someone have a knowledge in windows drivers I would be very thankful. I have a laptop PC, Windows 10 and Windows Server 2019 on my hands. The internal touchpad is working as a HID over I2C. Default driver for this is I2C HID Miniport driver (hidi2c.sys). Both 2019 and Win10 has it, but 2019 just refuses to use it. This looked strange to me so I took both install images (wim files) to compare.First what I noticed, that on 2019, inside Windows\INF the hidi2c.inf file does not have a corresponding .pnf (compiled inf). Also the offline driver import logs are different (these imports are done by Microsoft obviously, the images are original):Win10 (All good):Code:sto: {Import Driver Package: D:\wd\compilerTemp\BMT.SE.kyappx5f.5lp\Starter\Windows\WinSxS\amd64_dual_hidi2c.inf_31bf3856ad364e35_10.0.19041.1_none_28eb57ba9670482a\hidi2c.inf} 09:13:40.577sto: Driver Store = D:\wd\compilerTemp\BMT.SE.kyappx5f.5lp\Starter\Windows\System32\DriverStore (10.0.19041)sto: Driver Package = D:\wd\compilerTemp\BMT.SE.kyappx5f.5lp\Starter\Windows\WinSxS\amd64_dual_hidi2c.inf_31bf3856ad364e35_10.0.19041.1_none_28eb57ba9670482a\hidi2c.infsto: Architecture = amd64sto: Flags = 0x00000245inf: Provider = Microsoftinf: Class GUID = {745a17a0-74d3-11d0-b6fe-00a0c90f57da}inf: Driver Version = 06/21/2006,10.0.19041.1inf: Version Flags = 0x00000001inf: {Query Configurability: D:\wd\compilerTemp\BMT.SE.kyappx5f.5lp\Starter\Windows\WinSxS\amd64_dual_hidi2c.inf_31bf3856ad364e35_10.0.19041.1_none_28eb57ba9670482a\hidi2c.inf} 09:13:40.593inf: Driver package 'hidi2c.inf' is configurable.inf: {Query Configurability: exit(0x00000000)} 09:13:40.593sig: Signer Score = 0x0D000003 (Inbox)flq: {FILE_QUEUE_COMMIT} 09:13:40.593flq: Hardlinking 'D:\wd\compilerTemp\BMT.SE.kyappx5f.5lp\Starter\Windows\WinSxS\amd64_dual_hidi2c.inf_31bf3856ad364e35_10.0.19041.1_none_28eb57ba9670482a\hidi2c.inf' to 'D:\wd\compilerTemp\BMT.SE.kyappx5f.5lp\Starter\Windows\System32\DriverStore\FileRepository\hidi2c.inf_amd64_aad0f43cb9f97e75\hidi2c.inf'.flq: Hardlinking 'D:\wd\compilerTemp\BMT.SE.kyappx5f.5lp\Starter\Windows\WinSxS\amd64_dual_hidi2c.inf_31bf3856ad364e35_10.0.19041.1_none_28eb57ba9670482a\hidi2c.sys' to 'D:\wd\compilerTemp\BMT.SE.kyappx5f.5lp\Starter\Windows\System32\DriverStore\FileRepository\hidi2c.inf_amd64_aad0f43cb9f97e75\hidi2c.sys'.flq: {FILE_QUEUE_COMMIT - exit(0x00000000)} 09:13:40.593idb: {Register Driver Package: D:\wd\compilerTemp\BMT.SE.kyappx5f.5lp\Starter\Windows\System32\DriverStore\FileRepository\hidi2c.inf_amd64_aad0f43cb9f97e75\hidi2c.inf} 09:13:40.593idb: Created driver package object 'hidi2c.inf_amd64_aad0f43cb9f97e75' in SYSTEM database node.idb: Created driver INF file object 'hidi2c.inf' in SYSTEM database node.idb: Registered driver package 'hidi2c.inf_amd64_aad0f43cb9f97e75' with 'hidi2c.inf'.idb: {Register Driver Package: exit(0x00000000)} 09:13:40.593sto: Driver Store Filename = D:\wd\compilerTemp\BMT.SE.kyappx5f.5lp\Starter\Windows\System32\DriverStore\FileRepository\hidi2c.inf_amd64_aad0f43cb9f97e75\hidi2c.infsto: {Import Driver Package: exit(0x00000000)} 09:13:40.5932019 (Warning that pci.inf is missing. Pci.inf is actually imported later. Probably should have been imported before other packages use it. Is it a fail?):Code:sto: {Import Driver Package: d:\os\bin\amd64fre\images\staged\Server\ServerWeb\Windows\WinSxS\amd64_dual_hidi2c.inf_31bf3856ad364e35_10.0.17763.1_none_63c0341c4f3c2dab\hidi2c.inf} 00:17:16.853sto: Driver Store = d:\os\bin\amd64fre\images\staged\Server\ServerWeb\Windows\System32\DriverStore (10.0.17763)sto: Driver Package = d:\os\bin\amd64fre\images\staged\Server\ServerWeb\Windows\WinSxS\amd64_dual_hidi2c.inf_31bf3856ad364e35_10.0.17763.1_none_63c0341c4f3c2dab\hidi2c.infsto: Architecture = amd64sto: Flags = 0x00000245inf: Provider = Microsoftinf: Class GUID = {745a17a0-74d3-11d0-b6fe-00a0c90f57da}inf: Driver Version = 06/21/2006,10.0.17763.1inf: Version Flags = 0x00000001! inf: Could not find include INF file "pci.inf". Error = 0x00000002inf: Needed section  not found, might exist in missing included INF.inf: {Query Configurability: d:\os\bin\amd64fre\images\staged\Server\ServerWeb\Windows\WinSxS\amd64_dual_hidi2c.inf_31bf3856ad364e35_10.0.17763.1_none_63c0341c4f3c2dab\hidi2c.inf} 00:17:16.853inf: Driver package is fully isolated.inf: Driver package 'hidi2c.inf' is configurable.inf: {Query Configurability: exit(0x00000000)} 00:17:16.853sig: Signer Score = 0x0D000003 (Inbox)flq: Hardlinking 'd:\os\bin\amd64fre\images\staged\Server\ServerWeb\Windows\WinSxS\amd64_dual_hidi2c.inf_31bf3856ad364e35_10.0.17763.1_none_63c0341c4f3c2dab\hidi2c.inf' to 'd:\os\bin\amd64fre\images\staged\Server\ServerWeb\Windows\System32\DriverStore\FileRepository\hidi2c.inf_amd64_891a4188cb4bf01b\hidi2c.inf'.flq: Hardlinking 'd:\os\bin\amd64fre\images\staged\Server\ServerWeb\Windows\WinSxS\amd64_dual_hidi2c.inf_31bf3856ad364e35_10.0.17763.1_none_63c0341c4f3c2dab\hidi2c.sys' to 'd:\os\bin\amd64fre\images\staged\Server\ServerWeb\Windows\System32\DriverStore\FileRepository\hidi2c.inf_amd64_891a4188cb4bf01b\hidi2c.sys'.idb: {Register Driver Package: d:\os\bin\amd64fre\images\staged\Server\ServerWeb\Windows\System32\DriverStore\FileRepository\hidi2c.inf_amd64_891a4188cb4bf01b\hidi2c.inf} 00:17:16.884idb: Created driver package object 'hidi2c.inf_amd64_891a4188cb4bf01b' in SYSTEM database node.idb: Created driver INF file object 'hidi2c.inf' in SYSTEM database node.idb: Registered driver package 'hidi2c.inf_amd64_891a4188cb4bf01b' with 'hidi2c.inf'.idb: {Register Driver Package: exit(0x00000000)} 00:17:16.884sto: Driver Store Filename = d:\os\bin\amd64fre\images\staged\Server\ServerWeb\Windows\System32\DriverStore\FileRepository\hidi2c.inf_amd64_891a4188cb4bf01b\hidi2c.infsto: {Import Driver Package: exit(0x00000000)} 00:17:16.884I'm not sure what are implications of this error. But here comes more info. I loaded registry hives from install image to see how things look offline. So this is the databefore installing OS. There are huge differencies in driver registration (you may also look attachments).1. HKLM\SYSTEM\DriverDatabase\DriverInfFiles\ there is key for a hidi2c.inf on both OS, but 2019 does not have "Configurations" value.2. HKLM\SYSTEM\CurrentConrolSet\Services\ there is no key for hidi2c service on 2019.3. HKLM\SYSTEM\DriverDatabase\DriverPackages\ there is key for a hidi2c.inf on both OS, but 2019 does not have some important subkeys and values.4. HKLM\SYSTEM\DriverDatabase\DeviceIds\ 2019 is missing the ID of supported devices (ACPI\PNP0C50 in this case).So I make conclusion, that driver is imported, but not fully registered.Also after installing OS, Win10 shows hidi2c driver in msinfo32 "System drivers", 2019 does not. The Compatible ID's of the device is mathing hidi2c.inf, but the automatic installer just ignores it. I was checking its behaviour with Process Monitor from SysInternals. I tried many things, including, but not limitted to:1. Tried to delete and reimport the driver offline. Dism.exe does not support default driver removal.2. Tried to install .inf online.3. Deleted driver entries and files and tried to install .inf. Windows says it is third party driver and does not contain signature. Signature check = off - no luck either.4. Manually added keys and values to registry - the driver apeared in msinfo32, but still does not work.From 644 included drivers there are a few more drivers which have import warnings and incomplete registrations(?), not just this one. I looked some other released versions of Server 2019 and ALL of them are same main build date with same driver imports. What is going on? Do I understand all this correct? Is the driver import actually broken? Can I somehow force it to register / reinstall?P.S. It is not of huge importance, but the idea of internal drivers being broken like this really surprised me.

author: PKTKS
author_rank: Super Contributor
timestamp: December 25, 2020, 11:09:53 am
content: Quote from: Manul on December 25, 2020, 02:58:07 amI can not help you much on the issue. Nor should I...And what you expected ? surprised ? from them?...MS is a paid product which bottom line is to cripple useraccess to the inner of driver control...The registry is a reinforcement policy to make almostimpossible to decipher anything without a proper GUItool and knowledge of the cryptic keys put there.That said the helpful part is that they just bundle a bunchof drivers usually pre paid or contracted by version releasein which (by their EULA) they assume or take any responsibilityof the consequences support or results (security implied)I had ditched that crappy shit bundle decades ago when hadmy paid hardware damaged by their unsupported buggy driversand things just got really worse ... with more and more sniffer servicesusing plenty CPU and I/O resources to fill their telemetry supervisorswhich mostly are DRM an license interests..I had enough of that and dumped MS in the pottyMy only useful advice in that would be ..get rid of that junk - if possibleLast resource is trying their willingness to do supporton their well known pile of junk..never saw a thing of that.. being usefulPaul

author: masterdave
author_rank: Newbie
timestamp: November 02, 2021, 06:05:00 pm
content: Windows Server "forgets" to install hidi2c.sys. The INF insallation method does not work with this device.You need to manually install the device.Copy hidi2c.sys from installation media, boot.wim to c:\windows\system32\drivers.Extract the relevant registry data for hidi2c service from Windows Server PE (can do this online or offline from hives).Use PSEXEC to import registry configuration, then reboot. Your device should work fine.