ReactOS 0.4.15-dev-7842-g558ab78
fxrequestcontext.hpp
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation. All rights reserved.
4
5Module Name:
6
7 FxRequestContext.hpp
8
9Abstract:
10
11 Defines the base structure for contexts associated with FxRequest
12
13Author:
14
15
16
17Environment:
18
19 Both kernel and user mode
20
21Revision History:
22
23--*/
24
25#ifndef _FXREQUESTCONTEXT_H_
26#define _FXREQUESTCONTEXT_H_
27
29
30//
31// IO_STACK_LOCATION::Parameters.Others.Argument3 is taken up by the IOCTL
32// value, so there are only 3
33//
34#define FX_REQUEST_NUM_OTHER_PARAMS (3)
35
36//
37// Here are all the derivations off of FxRequestContext
38//
39// FxIoContext
40// FxInternalIoctlOthersContext
41// FxUsbRequestContext
42// +FxUsbDeviceVendorContext
43// +FxUsbDeviceStatusContext
44// +FxUsbDeviceFeatureContext
45// +FxUsbPipeTransferContext
46// +FxUsbUrbContext
47// +FxUsbPipeRequestContext
48// +FxUsbPipeControlTransferContext
49//
50
52 WDFMEMORY Argument1;
53 WDFMEMORY Argument2;
54 WDFMEMORY Argument4;
56
57struct FxRequestContext : public FxStump {
58
61 );
62
63 virtual
65 VOID
66 );
67
68 virtual
69 VOID
71 VOID
72 )
73 {}
74
75 virtual
76 VOID
79 );
80
81 virtual
82 VOID
85 );
86
87 __inline
91 )
92 {
93 return m_RequestType == Type;
94 }
95
96 virtual
97 VOID
100 )
101 {
103 }
104
105 VOID
109 );
110
111 VOID
115 );
116
117 VOID
120 );
121
122protected:
123 static
124 VOID
126 __in PVOID Tag,
127 __deref_out_opt IFxMemory** PPMemory,
129 );
130
131 VOID
132 __inline
134 VOID
135 )
136 {
139 }
140
141public:
143
144 //
145 // Memory associated with the context that will be released when the
146 // FxRequestBase has been completed by the target.
147 //
149
150 //
151 // RTTI replacement
152 //
154};
155
156#endif // _FXREQUESTCONTEXT_H_
unsigned char BOOLEAN
Type
Definition: Type.h:7
Definition: bufpool.h:45
#define __in
Definition: dbghelp.h:35
#define __in_opt
Definition: dbghelp.h:38
#define __deref_out_opt
Definition: dbghelp.h:29
FxInternalIoctlParams InternalIoctlParams
struct _FxInternalIoctlParams FxInternalIoctlParams
UCHAR FX_REQUEST_CONTEXT_TYPE
struct _FxInternalIoctlParams * pFxInternalIoctlParams
_Must_inspect_result_ __in WDFUSBPIPE __in WDFREQUEST __in_opt WDFMEMORY __in_opt PWDFMEMORY_OFFSET WriteOffsets
_Must_inspect_result_ __in WDFUSBPIPE __in WDFREQUEST __in_opt WDFMEMORY __in_opt PWDFMEMORY_OFFSET ReadOffsets
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
FX_REQUEST_CONTEXT_TYPE m_RequestType
virtual VOID ReleaseAndRestore(__in FxRequestBase *Request)
WDF_REQUEST_COMPLETION_PARAMS m_CompletionParams
virtual VOID StoreAndReferenceMemory(__in FxRequestBuffer *Buffer)
static VOID _StoreAndReferenceMemoryWorker(__in PVOID Tag, __deref_out_opt IFxMemory **PPMemory, __in FxRequestBuffer *Buffer)
__inline BOOLEAN IsType(__in FX_REQUEST_CONTEXT_TYPE Type)
IFxMemory * m_RequestMemory
virtual VOID CopyParameters(__in FxRequestBase *Request)
virtual VOID Dispose(VOID)
virtual ~FxRequestContext(VOID)
VOID __inline InitCompletionParams(VOID)
VOID FormatReadParams(__in_opt IFxMemory *ReadMemory, __in_opt PWDFMEMORY_OFFSET ReadOffsets)
VOID FormatOtherParams(__in FxInternalIoctlParams *InternalIoctlParams)
VOID FormatWriteParams(__in_opt IFxMemory *WriteMemory, __in_opt PWDFMEMORY_OFFSET WriteOffsets)
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4065
@ WdfRequestTypeNoFormat
Definition: wdfdevice.h:533
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
FORCEINLINE VOID WDF_REQUEST_COMPLETION_PARAMS_INIT(_Out_ PWDF_REQUEST_COMPLETION_PARAMS Params)
Definition: wdfrequest.h:288
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY ReadMemory
Definition: wdfusb.h:2000
_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST _In_opt_ WDFMEMORY WriteMemory
Definition: wdfusb.h:1918
unsigned char UCHAR
Definition: xmlstorage.h:181