2020-09-24 20:51:15 +00:00
|
|
|
//
|
|
|
|
// Copyright (C) Microsoft. All rights reserved.
|
|
|
|
//
|
|
|
|
#ifndef _FXUSBIDLEINFO_H_
|
|
|
|
#define _FXUSBIDLEINFO_H_
|
|
|
|
|
|
|
|
struct FxUsbIdleInfo : public FxStump {
|
|
|
|
public:
|
|
|
|
FxUsbIdleInfo(
|
|
|
|
__in FxPkgPnp* PkgPnp
|
|
|
|
) : m_IdleCallbackEvent(NULL), m_IdleIrp(NULL)
|
|
|
|
{
|
|
|
|
m_CallbackInfo.IdleCallback = _UsbIdleCallback;
|
|
|
|
m_CallbackInfo.IdleContext = PkgPnp;
|
|
|
|
m_EventDropped = FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
_Must_inspect_result_
|
|
|
|
NTSTATUS
|
|
|
|
Initialize(
|
|
|
|
VOID
|
|
|
|
);
|
|
|
|
|
|
|
|
FxCREvent* m_IdleCallbackEvent;
|
|
|
|
|
|
|
|
FxAutoIrp m_IdleIrp;
|
|
|
|
|
|
|
|
USB_IDLE_CALLBACK_INFO m_CallbackInfo;
|
|
|
|
|
|
|
|
//
|
|
|
|
// used to check if UsbSelectiveSuspendCompleted event was dropped.
|
|
|
|
//
|
|
|
|
BOOLEAN m_EventDropped;
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
__drv_maxIRQL(PASSIVE_LEVEL)
|
|
|
|
static
|
|
|
|
VOID
|
2020-10-16 03:30:51 +00:00
|
|
|
STDCALL
|
2020-09-24 20:51:15 +00:00
|
|
|
_UsbIdleCallback(
|
|
|
|
__in PVOID Context
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // _FXUSBIDLEINFO_H_
|