reactos/sdk/lib/drivers/wdf/shared/inc/private/common/fxusbrequestcontext.hpp
Victor Perevertkin 1f377076d7
[WDF] Fix KMDF so it can compile with ReactOS SDK
Not all files are included, but these are necessary to compile cdrom driver.
So far it can only be statically linked with drivers, a proper
implementation requires wdfldr helper driver
2020-11-03 00:06:27 +03:00

89 lines
1.6 KiB
C++

/*++
Copyright (c) Microsoft Corporation
Module Name:
FxUsbRequestContext.hpp
Abstract:
Author:
Environment:
kernel mode only
Revision History:
--*/
#ifndef _FXUSBREQUESTCONTEXT_H_
#define _FXUSBREQUESTCONTEXT_H_
#if (FX_CORE_MODE == FX_CORE_USER_MODE)
#include <umusb.h>
#endif
struct FxUsbRequestContext : public FxRequestContext {
FxUsbRequestContext(
__in FX_REQUEST_CONTEXT_TYPE Type
) :
FxRequestContext(Type)
{
InitUsbParameters();
SetUsbType(WdfUsbRequestTypeNoFormat);
}
virtual
USBD_STATUS
GetUsbdStatus(
VOID
) = 0;
virtual
VOID
CopyParameters(
__in FxRequestBase* Request
)
{
m_UsbParameters.UsbdStatus = GetUsbdStatus();
FxRequestContext::CopyParameters(Request); // __super call
}
VOID
SetUsbType(
__in WDF_USB_REQUEST_TYPE Type
)
{
//
// The completion params are set every time we set the type
//
m_CompletionParams.Type = WdfRequestTypeUsb;
m_CompletionParams.Parameters.Usb.Completion = &m_UsbParameters;
m_UsbParameters.Type = Type;
}
VOID
__inline
InitUsbParameters(
VOID
)
{
RtlZeroMemory(&m_UsbParameters, sizeof(m_UsbParameters));
}
public:
WDF_USB_REQUEST_COMPLETION_PARAMS m_UsbParameters;
#if (FX_CORE_MODE == FX_CORE_USER_MODE)
//
// UMURB we send to the WUDF USB Dispatcher. The dispatcher
// extracts the encoded data and passes it to WinUsb APIs.
//
UMURB m_UmUrb;
#endif
};
#endif // _FXUSBREQUESTCONTEXT_H_