Pocket PC Networking >> Power Management problem in NDIS passthru

by Vijay Visana » Thu, 22 Sep 2005 15:49:37 GMT

Hi
I have passthru that is creating problem in Imate PDA2 device.
When advance power management settings power off the device after specified
idle time interval.
Power it on, system failes to get (DHCP)IP address though it latches to
Access point.
This device has Texas Instrument's inbuilt network card.





Pocket PC Networking >> Power Management problem in NDIS passthru

by Vijay Visana » Thu, 22 Sep 2005 15:52:47 GMT


In earlier device like PDA2K I have solved this problem by returning
NDIS_STATUS_NOT_SUPPORTED from ProtocolPnpHandler function. But this does
not seems to be working in new device(i.e. PDA2).
Vijay








Similar Threads

1. Power Management PASSTHRU

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