Hi,
i have a problem with power management of passthru IM ndis driver
of windows ce 5.0
I like enable power management and can suspend/resume the power of
virtual device and physical device.

>From source of Passthru of PB5.0 i have changed:

MiniportQueryInformation: return to OID_PNP_CAPABILITIES the
NDIS_STATUS_SUCCESS status.

>From application when try to suspend the virtual driver with this
application code:

WCHAR strDevice[MAX_PATH];
wsprintf(strDevice, L"{98C5250D-C29A-4985-AE5F-AFE5367E5006}\%s",
strVirtualAdapter);
SetDevicePower(strDevice, POWER_NAME, D3);

NDIS call MiniportSetInformation->OID_PNP_SET_POWER with
NDIS_DEVICE_POWER_STATE = D3. The virtual adapter is suspend but the
physical adapater is power on because the Virtual Minitor don't
propagate a notification to real device. It's a not problem and is a
ok.


Viceversa if i want suspend the physical device, i use this application
code:

WCHAR strDevice[MAX_PATH];
wsprintf(strDevice, L"{98C5250D-C29A-4985-AE5F-AFE5367E5006}\%s",
strPhysicalAdapter);
SetDevicePower(strDevice, POWER_NAME, D3);


NDIS call
ProtocolPNPHandler->NetEventSetPower->ProtocolPnPNetEventSetPower. The
physical device go in power off but the virtual device continue to
power on. The virtual adapeter don't receive a power notification by
passthru protocol. Into ProtocolPnPNetEventSetPower is called
NdisIMNotifyPnPEvent (return 0) but don't receive a respective
OID_PNP_SET_POWER to MiniportSetInformation. I would want that when the
physical device is power off also the respective virtual device is
power off. Why the protocol don't propagates a power notification ?

Thanks
Ciao Massimo

Re: Power Management PASSTHRU by Massimo

Massimo
Sun Jan 07 05:39:51 CST 2007

nobody that it knows to help me ?

thanks
Massimo



Massimo ha scritto:

> Hi,
> i have a problem with power management of passthru IM ndis driver
> of windows ce 5.0
> I like enable power management and can suspend/resume the power of
> virtual device and physical device.
>
> >From source of Passthru of PB5.0 i have changed:
>
> MiniportQueryInformation: return to OID_PNP_CAPABILITIES the
> NDIS_STATUS_SUCCESS status.
>
> >From application when try to suspend the virtual driver with this
> application code:
>
> WCHAR strDevice[MAX_PATH];
> wsprintf(strDevice, L"{98C5250D-C29A-4985-AE5F-AFE5367E5006}\%s",
> strVirtualAdapter);
> SetDevicePower(strDevice, POWER_NAME, D3);
>
> NDIS call MiniportSetInformation->OID_PNP_SET_POWER with
> NDIS_DEVICE_POWER_STATE = D3. The virtual adapter is suspend but the
> physical adapater is power on because the Virtual Minitor don't
> propagate a notification to real device. It's a not problem and is a
> ok.
>
>
> Viceversa if i want suspend the physical device, i use this application
> code:
>
> WCHAR strDevice[MAX_PATH];
> wsprintf(strDevice, L"{98C5250D-C29A-4985-AE5F-AFE5367E5006}\%s",
> strPhysicalAdapter);
> SetDevicePower(strDevice, POWER_NAME, D3);
>
>
> NDIS call
> ProtocolPNPHandler->NetEventSetPower->ProtocolPnPNetEventSetPower. The
> physical device go in power off but the virtual device continue to
> power on. The virtual adapeter don't receive a power notification by
> passthru protocol. Into ProtocolPnPNetEventSetPower is called
> NdisIMNotifyPnPEvent (return 0) but don't receive a respective
> OID_PNP_SET_POWER to MiniportSetInformation. I would want that when the
> physical device is power off also the respective virtual device is
> power off. Why the protocol don't propagates a power notification ?
>
> Thanks
> Ciao Massimo