Installation problem w/ PnPX (umb)

(Sorry for my poor English.)

I compiled a sideshow device sample source "NoDevice",
it works fine when I install it from "Add new hardware" control panel.

But, when I wrote a PnPX (WS-D) device responder,
it returns "WindowsSideShowNoDevice" Hardware Id,
it appears in "Networking" control panel,
and I select "Install" from its pop-up menu,
then installation complete with NO ERRORS,
BUT I cannot find it in "Windows SideShow" control panel.

Some functions in ISideShowDriver (OnGetCurrentUser, OnGetDeviceName..)
are called normally.

Any additional inf elements are required?
- Zoroyoshi

[721 byte] By [Zoroyoshi] at [2008-1-7]
# 1

Zoroyoshi,

Does the device show up under Windows SideShow in Device Manager? Does it show as banged out at all? As long as it shows up in the right category, and you properly initialize the ISideShowClassExtension object, you should see it in the SideShow control panel.

Also, it does depend on what the driver returns for the ISideShowDriver implementation. There are some functions which need to be returning success for the driver to work properly.

Dan

DanPolivy-MSFT at 2007-10-2 > top of Msdn Tech,Software Development for Windows Vista,Windows SideShow Development...
# 2

Thank you Dan,

The codes and .inf file are not changed from "NoDevice" sample codes.

The device shows up in class "SideShow" of "Device Manager" w/ no errors;

and, the device shows up in class "System" also (umpass provides);

but the device does not appear in "SideShow" control panel.

Ofcourse the sample code in "NoDevice" implementation are limited,

so some functions in ISideShowDriver returns false or insufficient,

but it can work propery when installed from "Add Hardware.." control panel.

I guess that accesses from the "SideShow" control panel are blocked

because of security reason, so I added Securiy (A;;GA;;;WD)

to the .inf file, but the result have no difference.

- Zoroyoshi

Zoroyoshi at 2007-10-2 > top of Msdn Tech,Software Development for Windows Vista,Windows SideShow Development...
# 3

Zoroyoshi,

Have you tried debugging the driver to determine whether it is properly loading and initializing the class extension? There may be some issues with using the INF as-is for a PnP-based device. For information on debugging a user-mode driver, you can look here:

http://msdn2.microsoft.com/en-us/library/aa510985.aspx

Dan

DanPolivy-MSFT at 2007-10-2 > top of Msdn Tech,Software Development for Windows Vista,Windows SideShow Development...
# 4

Thanks Dan,

I've used a debugger to TRACE output from the driver, but there is no explicit error.

Some functions are called, but some functions are not called (silently), and

the "sideshow" control panel does not shows up the "NoDevice".

(Now I'm using another method to TRACE output... send it to another machine by udp,

to observe the sequence when restarting machine.)

And I can't find the explicit error in Setupapi.log file.

I tried to change the inf file

- to set DeviceCharacteristics, Security

- to set UmdfImpersonationLevel more higher (Delegation)

- to use UMPass.sys as LowerFilters as-if for the usb-based driver

- to set UmdfDispatcher to FileHandle

, but they have no effect.

#Ofcourse, I can write a co-installer to install the "NoDevice" device from PnP-X install menu,

as-if it is installed from "Add Hardware" control panel using SetupDiXXX() and UpdateDriver4PnPDev();

but I think this way is not smart.

- Zoroyoshi

Zoroyoshi at 2007-10-2 > top of Msdn Tech,Software Development for Windows Vista,Windows SideShow Development...
# 5

Zoroyoshi,

Do you have any more details on which functions are called and which are not? Is the Windows SideShow class extension successfully initialized? Can you confirm that there is a WUDFHost.exe process running when you install your driver?

Dan

DanPolivy-MSFT at 2007-10-2 > top of Msdn Tech,Software Development for Windows Vista,Windows SideShow Development...
# 6

Dear Dan,

When I install from add-hardware control panel:

Code Snippet

// install from add-hardware control panel
000015 DllGetClassObject
000140 OnInitialize
000140 OnDeviceAdd
000140 Cdevice created
000156 CreateDevice
000156 InstanceId=ROOT\SIDESHOW\0000
000156 DeviceName=\\.\UMDFCtrlDev-1575920f-6276-11dc-a911-00030d4751ee
000156 CreateIoQueue
000171 OnPrepareHardware
000468 sideshow object created
000671 OnGetCurrentUser x 7times
000967 OnSetUserState S-1-5-21-307744684...
000967 OnSetCurrentUser S-1-5-21-30774684...
001076 OnGetDeviceName
001076 OnGetDeviceManufacturer
001076 OnGetApplicationOrder
001107 OnGetDeviceCapabilities 26D4979A-E643-4626-9E2B-736DC0C92FDC,15
001107 OnGetDeviceName
001123 OnProcessWpdMessage
001170 OnGetPreEnabledApplications
001295 OnGetDeviceName
001295 OnGetDeviceManufacturer
001295 OnGetDeviceCapabilities 26D4979A-E643-4626-9E2B-736DC0C92FDC,15
001326 OnGetDeviceName
001466 OnGetPreEnabledApplications
001607 OnSetTimeZone
001607 OnSetTime
// when user opens sideshow control panel
// (showing OnCreateFile/OnDeviceIoControl)
029640 OnCreateFile
029749 OnCreateFile
029749 OnDeviceIoControl 328
029780 OnCreateFile
029796 OnDeviceIoControl 134
029796 OnGetDeviceEndpoints

And when I install using PnP-X:

Code Snippet

// install by PnPX
000015 DllGetClassObject
000031 OnInitialize
000031 OnDeviceAdd
000031 CreateDevice
000031 InstanceId=URN:UUID:ED440308-F6AE-4D02-BE7B-004026610FE3\UMB\3&27BF205E&45&URN:UUID:ED440308-F6AE-4D02-BE7B-004026610FE3/URI:105SNOM_SIDESHOW
000031 DeviceName=\\.\UMDFCtrlDev-1575921e-6276-11dc-a911-00030d4751ee
000031 CreateIoQueue
000031 OnPrepareHardware
000218 sideshow object created
000889 OnGetCurrentUser
000889 OnGetDeviceName
000967 OnGetCurrentUser
000967 OnGetDeviceManufacturer
001014 OnGetCurrentUser
001014 OnGetDeviceCapabilities 26D4979A-E643-4626-9E2B-736DC0C92FDC,15
001029 OnGetCurrentUser
001029 OnGetDeviceName
001029 OnProcessWpdMessage
001170 OnGetCurrentUser
001170 OnGetPreEnabledApplications
001341 OnGetCurrentUser
001341 OnGetDeviceName
001341 OnGetCurrentUser
001341 OnGetDeviceManufacturer
001357 OnGetCurrentUser
001357 OnGetDeviceCapabilities 26D4979A-E643-4626-9E2B-736DC0C92FDC,15
001357 OnGetCurrentUser
001357 OnGetDeviceName
001404 OnGetCurrentUser
001404 OnGetPreEnabledApplications
001560 OnGetCurrentUser
001560 OnGetCurrentUser
// when user opens sideshow control panel
// (showing OnCreateFile/OnDeviceIoControl)
020701 OnCreateFile

and WUDFHost.exe process is running.

I tried some SID returned by OnGetCurrentUser (special SID for console-user, fixed SID of me=logon user,...)

but the result was not improved.

BTW, when I tried to install by PnPX from remote-desktop, I can't do.

I think some access-right problem occurs on both situations.

Zoroyoshi at 2007-10-2 > top of Msdn Tech,Software Development for Windows Vista,Windows SideShow Development...

Software Development for Windows Vista

Site Classified