Hi,
i have a problem with power management of passthru IM ndis driver
of windows mobile 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
2. Should NDIS IM driver handle Power Management I/O control - Pocket PC Networking
3. NDIS mini-port and application power management cooperation
Dear colleagues, The issue has been already discussed in a few forums. However, I would like to raise another aspect - can a "friendly" application be used in cooperation with NDIS mini-port driver to detect and to initiate the device low power setting. We have encountered the same problem with NDIS mini-port limitations - low power setting while a device idle (no activity). But in our situation we provide both an application and NDIS mini-port driver SW packages. Thus, my question is: Can we involve our application SW in order to inititate the NDIS mini-port driver low power setting? For example, Vista allows DeviceControl (even propriatry ones) IOCTLs communication between an application and devcie driver. Can such mechanism be used in order to initiate a device low power transition (e.g USB selecive suspend) while the device detects idle conditions? Thanks in advance, Avi
4. POwer Management for NDIS 5.1 device - Windows XP Network
5. Problem with and NDIS IM driver based on the PassThru DDK sample
6. How to get NDIS passthru example to run on pocket pc - Pocket PC Networking
7. Need help with NDIS passthru example(PB 4.2) on PPC
I spent a lot of time on this, any help would be very much appreciated!
I got the example working on the standard emulator by generating an image
and integrating the example into the image.
Unfortunately, I can not repeat that process for the PPC emulator that ships
with PPC SDK 2003 since there is no BSP included with it. The same holds
for the iPaq which is my final target.
Being unable to use PB directly, I went to the command line from the
emulator project and:
1. Set a couple of environment variables, most importantly target cpu/family
to armv4/arm.
2. Changed the TARGETLIBS in the sources file to point the linker to the PPC
SDK .lib files.
3. Inserted the registry keys into the emulator, namely
HKLM\Comm\PASSTHRU\{Group,ImagePath,NoCreateDevice} =
{"NDIS","passthru.dll",1}
4. Build the .dll and copied it to the Windows folder
5. Did a Soft-Reset on the Emulator and observed Registry, Processes and
Files. Registry was as I left it, Processes showed no sign of a
passthru.dll module in device.exe, Files didn't show the testfile which
should have been created in DriverEntry(a simple
createfile/writefile/closefile sequence I inserted that works on standard
emu, the only change to the example).
I repeated that process numerous times with minor variances without any
luck. Tried it on the iPaq as well.
Next thing I tried was building the driver using Visual Studio 2005.
I've set the C defines from the sources file, subsystem to windows ce,
turned on the /Driver switch and set the entry point to DriverEntry.
Again, no luck.
I have no idea what I'm doing wrong.
Thanks for any hints,
ken
8. modify ndis packet in passthru driver - Pocketpc Developer