Hi All:
I have to write a kernel streaming mini driver for my pc camera on
USB1.1 without USBCAMD. Beside, I want to add “Remote-Wakeup”
functionality in my pc-camera solution.
Hardware:
- Enable “Remote-Wakeup” in the configuration descriptor.
(bmAttributes:D5 == 1) - Put a button on my device for triggering wakeup event.
- My device can pass the HCT11.2 device framework(CV) test,
supposedly, my device is OK to support “Remote-Wakeup”.
Software:
- Now, I don’t issue “IRP_MN_WAIT_WAKE” in my mini driver,
therefor, our driver doesn’t support “Remote-Wakeup”. - My mini driver can run perfectly on WindowsXP.
(pass HCT11.2 Video Capture Device) - On Windows2000 with SP3:
(1)Plug device.
(2)Run AmCap.
(3)Preview smooth video from my device.
(4)Close AmCap.
(5)Suspend system to “Standby:S3”(or “Hibernate:S4”)
Mini driver receives “SRB_CHANGE_POWER_STATE” with
pSrb->Command.DeviceState==PowerDeviceD3.
(6)Wake up the system.(move PS2 mouse)
(7)The system wakes.(S0)
Then mini driver receives “SRB_CHANGE_POWER_STATE” with
pSrb->Command.DeviceState==PowerDeviceD2
(8)From now on, I can’t preview video from our device
unless I unplug the device and plug it again.
(9)If I disable “Remote-Wakeup” in configuration descriptor
(bmAttributes:D5 == 0), then everything will be OK. - My questions are:
(1)if I enable “Remote-Wakeup” in configuration descriptor, how
can I make my device to wake up correctly when system wakes
from S3 and S4?
(2)What should I do to make my mini driver to support "Remote-
Wakeup?
(3)There is no related information in DDK(s). Where can I get
related documents?
Chih-Hsiung Shih