Re: How can I make my CE device to a suspend state by Karel
Karel
Mon Jan 31 12:30:19 CST 2005
You are right - you probably want to set network driver to D3. I would
recommend to review power management documentation. When I simplify - each
CE device (all device in this context) power state maps to different
hardware device drivers power states. It is driven by registry. Default
power state for all network drivers for suspend/power off is D4. But NDIS
should use D3 in case that your NDIS driver returns wakeup source in
OID_PNP_CAPABILITIES.
Device power states are defined as subkeys in
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\State].
But in first approach you don't need worry about Dx state in NDIS driver.
Simply enable wakeup when network driver obtains D4 (you can fix power state
mapping later) and it should work.
However there is one huge issue - PCI bus. If your device really power off
you must make sure that wakeup from PME# signal - it depends on your
chipset. You also want to make sure that when OEMPowerOff is called PCI bus
will supply power required by VT3065 standby mode.
--
Karel Danihelka
---
Windows CE CoreOS
This posting is provided "AS IS" with no warranties, and confers no rights.
---
"Johns" <johnysmart@yahoo.com> wrote in message
news:%23dIS3V3BFHA.3416@TK2MSFTNGP09.phx.gbl...
>I did this on WindowsCE 4.2. Also, I have VIA's OEMPowerOff which is used
> for suspend/resume
> thanks,
> Johns
> "Johns" <johnysmart@yahoo.com> wrote in message
> news:OMWSUT3BFHA.1296@TK2MSFTNGP10.phx.gbl...
>> Hi,
>> I programmed the NIC to enable the Magic packet reception..
>> The ethernet debug message shows that the miniport driver enables the
> magic
>> packet for NIC(VT3065).
>> Now I suspend (from the star menu) the the CE device. I see that the NIC
>> power state changes from
>> D0(fully ON) to D3(Suspend).
>> But the Device shifts to D4(.I find that the power is set to 4). This
> means
>> that my NIC will not be
>> able to wake up the device on the reception of a magic packet....
> Shouldn't
>> the device also go to the Suspend state(D3).. Is there anything that I am
>> missing???
>> The following is a part of the debug messages I got after loading my
>> application.
>>
>> 0x877a0800: [VT3065] +MiniportReturnPacket[003b0030h]...
>> 0x877a0800: [VT3065] Packet[003bac2ch]->fInRcvDpc == TRUE, not return
> packet
>> here
>> 0x877a0800: [VT3065] Packet[003bac2ch]->fReturnPacketsCalled == TRUE
>> 0x877a0800: [VT3065] +MiniportEnableInterrupt[003b0030h]...
>> 0x875a2c04: Bailing on save bits because someone has an open DC!
>> 0x875a2c04: [VT3065] +MiniportSetInformation[003b0030h]
>> Oid[fd010106h]...
>> 0x875a2c04: [VT3065] Enable WakeUp MAGIC.
>> 0x875a2c04: [VT3065] Enable WakeUp PATTERN_MATCH.
>> LanPnPEvent(000D8FF0) - set power 4
>> 0x875a2c04: +OpenIFConfig(Comm\PCI\VT30651\Parms\TCPIP Handle 0xC0BE58C)
>> 0x875a2c04: Opened registry info for Comm\PCI\VT30651\Parms\TCPIP
>> 0x875a2c04: -OpenIFConfig(Comm\PCI\VT30651\Parms\TCPIP *Handle 0xC0BE58C,
>> BOOL Ret: 1)
>> 0x875a2c04: *CloseIFConfig(Handle 0x82FE0)
>> Ndisuio: PnPEvent: Open 0005D730, SetPower to 4
>> 0x875a2c04: [VT3065] +MiniportSetInformation[003b0030h]
>> Oid[fd010101h]...
>> 0x875a2c04: [VT3065] PowerState change [D0]=>[D3]
>> 0x875a2c04: [VT3065] PwrEvnt Status = [00].
>> 0x875a2c04: [VT3065] PwrEvnt Enable = [23].
>> 0x875a2c04: FS: Got Power notif 0x00000002
>> 0x875a2c04: FSREG: Registry flush unnecessary
>> 0x875a2c04: FSRAM: Flushing cached file data
>> Powering Off system:
>> Calling GWES power proc.
>> Calling device manager power proc.
>> !!!Warning!!! Setting resume/suspend/reset bits of USBCMD
>> !!!Warning!!! Setting resume/suspend/reset bits of USBCMD
>> !!!Warning!!! Setting resume/suspend/reset bits of USBCMD
>> Calling OEMPowerOff...
>> SCIPWM: Irq 0x598420, IOBase 0x4000
>> SCIPWM: STD
>>
>> Thanks,
>> Johns
>>
>>
>
>