I have a driver installation application that installs a miniport
adapter device programatically(through inf) which is accessed by user-mode
applications through raw file access api like CreateFile(). The driver
installation application used setupapi and is always successful on XP
but fails randomly on Vista.

When it fails WinObj tool shows a corrupt symbolic name under 'globals'
(Example:
HWID_{GUID}JunkCharacters) and i don't see the device entry created under
'devices' of WinObj...but all the registry entries are ok. Due to
this my user-mode application fails to open the adapter.


This is the sequence of calls i make in driver installation program...
SetupDiGetINFClass()
SetupCopyOEMInf()
SetupDiCreateDeviceInfo()
SetupDiSetDeviceRegistryProperty() -- to set HWID
SetupDiCallClassInstaller() -- NetCfg calss installers
UpdateDriverForPlugAndPlayDevices()


please help me resolve this
thanks in advance
FI

RE: SetupAPI failures on Vista by FI

FI
Wed Jul 23 08:57:01 CDT 2008

I actually see device entries also but with the same corrupt names as the
symbolic link under GLOBAL??. setupapi logs do not report any errors

"FI" wrote:

>
>
> I have a driver installation application that installs a miniport
> adapter device programatically(through inf) which is accessed by user-mode
> applications through raw file access api like CreateFile(). The driver
> installation application used setupapi and is always successful on XP
> but fails randomly on Vista.
>
> When it fails WinObj tool shows a corrupt symbolic name under 'globals'
> (Example:
> HWID_{GUID}JunkCharacters) and i don't see the device entry created under
> 'devices' of WinObj...but all the registry entries are ok. Due to
> this my user-mode application fails to open the adapter.
>
>
> This is the sequence of calls i make in driver installation program...
> SetupDiGetINFClass()
> SetupCopyOEMInf()
> SetupDiCreateDeviceInfo()
> SetupDiSetDeviceRegistryProperty() -- to set HWID
> SetupDiCallClassInstaller() -- NetCfg calss installers
> UpdateDriverForPlugAndPlayDevices()
>
>
> please help me resolve this
> thanks in advance
> FI
>