Re: don't go to stanby from C3 state by shinji
shinji
Sun Sep 11 21:30:05 CDT 2005
I used DELL Latitude D600.
I used PoRegisterForIdelDetection instead of "Idle notification Request
IRP".
I was able to get our device D2 state by PoRegisterForIdelDetection.
But I was not able to go to C3 state.
I think PoRegisterForIdelDetection is not perfect for notebook.
I think I have to use "Idle notification Request IRP" to raise C3 time
percentage.
I would like to make clear my problem.
/////////////////////////////////////////
case of FMV-BIBLO NB75K
When our capture device is idle and go to stanby mode ,
the PC can be suspended completely.
/////////////////////////////////////////
case of DELL Latitude D600
When our capture device is idle and go to stanby mode ,
the PC can not be suspended completely.
Because when the PC go to stanby mode,
IdleNotificationRequestComplete was not callled.
When ControlCode is IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION and
IoCallDriver is almost called,
IdleNotificationRequestComplete is set by IoSetCopleteRoutine.
"shinji wata" <watashin@mvision.co.jp> wrote in message
news:%23py$zTatFHA.4080@TK2MSFTNGP12.phx.gbl...
> I'm sorry.
> A part of my report was wrong.
>
> When every PC( what I tested) went into standby,
> Function (A) and Point (B) was passed.
>
> When some PC went into standby completely,
> PoIrpCompletionFunc was called.
>
> When some PC didn't go into standby completely,
> PoIrpCompletionFunc was not called.
>
> Why CompletionFunction of PoRequestPowerIrp was not called ?
>
> Thanks in Advance
>
> shinji
>
>> powerState.DeviceState = PowerDeviceD2;
>> KeInitializeEvent(&irpCompletionEvent, NotificationEvent, FALSE);
>> irpContext->pDC = pDC;
>> irpContext->Event = &irpCompletionEvent;
>> SSDbgPrint(3, ("PoRequestPowerIrp to PwrLev=%d\n",
>> powerState.DeviceState ));
>> ntStatus = PoRequestPowerIrp(
>> ....
>> IRP_MN_SET_POWER,
>> powerState,
>> (PREQUEST_POWER_COMPLETE) PoIrpCompletionFunc,
>> irpContext,
>> NULL);
>> if(STATUS_PENDING == ntStatus) {
>> SSDbgPrint(3, ("IdleNotificationCallback::"
>> "waiting for the power irp to complete\n"));
>> ....................(A)
>> KeWaitForSingleObject(&irpCompletionEvent, // Executive,
>> KernelMode,
>> FALSE,
>> NULL);
>> SSDbgPrint(3, ("IdleNotificationCallback::"
>> " the power irp to completed\n"));
> ......................(B)
>> }
>
>
>
> "shinji wata" <watashin@mvision.co.jp> wrote in message
> news:e0SzQ5RtFHA.3528@TK2MSFTNGP15.phx.gbl...
>>I was able to find FILES A" from "XP pro la checked/build".
>>
>> When a PC ( can suspend ) went into standby,
>> Function (A) can return.
>>
>> When a PC ( can not suspend ) went into standby,
>> Function (A) can not return.
>>
>