ReactOS 0.4.15-dev-7705-g2320c37
fxrequestbase.hpp File Reference
Include dependency graph for fxrequestbase.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  FxRequestTimer
 
class  FxRequestBase
 

Macros

#define WDF_REQUEST_REUSE_MUST_COMPLETE   2
 
#define WDF_REQUEST_SEND_INTERNAL_OPTION_FAIL_ON_PEND   (0x80000000)
 
#define WDF_REQUEST_INTERNAL_CONSTRAINTS_VALID_FLAGS    (WDF_REQUEST_SEND_INTERNAL_OPTION_FAIL_ON_PEND)
 

Typedefs

typedef VOID(* PFN_COMPLETE_COPY_ROUTINE) (__in FxIoTarget *This, __in FxRequest *Request, __in_opt FxRequestContext *Context)
 

Enumerations

enum  FxRequestTargetFlags {
  FX_REQUEST_COMPLETED = 0x01 , FX_REQUEST_PENDED = 0x02 , FX_REQUEST_TIMER_SET = 0x04 , FX_REQUEST_CANCELLED_FROM_TIMER = 0x08 ,
  FX_REQUEST_IGNORE_STATE = 0x10
}
 
enum  FxRequestAllocationSource { REQUEST_ALLOCATED_FROM_IO = 0 , REQUEST_ALLOCATED_INTERNAL = 1 , REQUEST_ALLOCATED_DRIVER = 2 }
 
enum  FxRequestIrpOwnership { FxRequestOwnsIrp = 1 , FxRequestDoesNotOwnIrp }
 
enum  FxRequestConstructorCaller { FxRequestConstructorCallerIsFx = 1 , FxRequestConstructorCallerIsDriver }
 
enum  FxRequestVerifierFlags {
  FXREQUEST_FLAG_DRIVER_OWNED = 0x0001 , FXREQUEST_FLAG_TAG_REQUEST = 0x0002 , FXREQUEST_FLAG_FORWARDED = 0x0004 , FXREQUEST_FLAG_DRIVER_DISPATCH = 0x0008 ,
  FXREQUEST_FLAG_DRIVER_CANCELABLE = 0x0010 , FXREQUEST_FLAG_DRIVER_INPROCESS_CONTEXT = 0x0020 , FXREQUEST_FLAG_CANCELLED = 0x0040 , FXREQUEST_FLAG_FORMATTED = 0x0080 ,
  FXREQUEST_FLAG_SENT_TO_TARGET = 0x0100 , FXREQUEST_FLAG_DRIVER_IN_EVTIOSTOP_CONTEXT = 0x0200 , FXREQUEST_FLAG_RESERVED_REQUEST_ASSOCIATED_WITH_IRP = 0x0400
}
 
enum  FxRequestBaseFlags { FxRequestBaseSystemMdlMapped = 0x1 , FxRequestBaseOutputMdlMapped = 0x2 , FxRequestBaseSyncCleanupContext = 0x10 }
 
enum  FxRequestBaseStaticFlags { FxRequestBaseStaticSystemBufferValid = 0x1 , FxRequestBaseStaticOutputBufferValid = 0x2 }
 
enum  FxRequestCompletionState { FxRequestCompletionStateIoPkgFlag = 0x80 , FxRequestCompletionStateNone = 0x00 , FxRequestCompletionStateQueue = 0x01 , FxRequestCompletionStateIoPkg = 0x02 | FxRequestCompletionStateIoPkgFlag }
 

Macro Definition Documentation

◆ WDF_REQUEST_INTERNAL_CONSTRAINTS_VALID_FLAGS

#define WDF_REQUEST_INTERNAL_CONSTRAINTS_VALID_FLAGS    (WDF_REQUEST_SEND_INTERNAL_OPTION_FAIL_ON_PEND)

Definition at line 65 of file fxrequestbase.hpp.

◆ WDF_REQUEST_REUSE_MUST_COMPLETE

#define WDF_REQUEST_REUSE_MUST_COMPLETE   2

Definition at line 35 of file fxrequestbase.hpp.

◆ WDF_REQUEST_SEND_INTERNAL_OPTION_FAIL_ON_PEND

#define WDF_REQUEST_SEND_INTERNAL_OPTION_FAIL_ON_PEND   (0x80000000)

Definition at line 63 of file fxrequestbase.hpp.

Typedef Documentation

◆ PFN_COMPLETE_COPY_ROUTINE

typedef VOID(* PFN_COMPLETE_COPY_ROUTINE) (__in FxIoTarget *This, __in FxRequest *Request, __in_opt FxRequestContext *Context)

Definition at line 73 of file fxrequestbase.hpp.

Enumeration Type Documentation

◆ FxRequestAllocationSource

Enumerator
REQUEST_ALLOCATED_FROM_IO 
REQUEST_ALLOCATED_INTERNAL 
REQUEST_ALLOCATED_DRIVER 

Definition at line 85 of file fxrequestbase.hpp.

85 {
86 REQUEST_ALLOCATED_FROM_IO = 0, // Irp came from the I/O package
87 REQUEST_ALLOCATED_INTERNAL = 1, // Irp was allocated internally and should be freed by the request
88 REQUEST_ALLOCATED_DRIVER = 2, // Irp was given to the request by the driver writer
89};
@ REQUEST_ALLOCATED_FROM_IO
@ REQUEST_ALLOCATED_DRIVER
@ REQUEST_ALLOCATED_INTERNAL

◆ FxRequestBaseFlags

Enumerator
FxRequestBaseSystemMdlMapped 
FxRequestBaseOutputMdlMapped 
FxRequestBaseSyncCleanupContext 

Definition at line 142 of file fxrequestbase.hpp.

142 {
146};
@ FxRequestBaseOutputMdlMapped
@ FxRequestBaseSyncCleanupContext
@ FxRequestBaseSystemMdlMapped

◆ FxRequestBaseStaticFlags

Enumerator
FxRequestBaseStaticSystemBufferValid 
FxRequestBaseStaticOutputBufferValid 

Definition at line 148 of file fxrequestbase.hpp.

148 {
151};
@ FxRequestBaseStaticSystemBufferValid
@ FxRequestBaseStaticOutputBufferValid

◆ FxRequestCompletionState

Enumerator
FxRequestCompletionStateIoPkgFlag 
FxRequestCompletionStateNone 
FxRequestCompletionStateQueue 
FxRequestCompletionStateIoPkg 

Definition at line 158 of file fxrequestbase.hpp.

158 {
160
164};
@ FxRequestCompletionStateIoPkgFlag
@ FxRequestCompletionStateIoPkg
@ FxRequestCompletionStateQueue
@ FxRequestCompletionStateNone

◆ FxRequestConstructorCaller

Enumerator
FxRequestConstructorCallerIsFx 
FxRequestConstructorCallerIsDriver 

Definition at line 100 of file fxrequestbase.hpp.

100 {
103};
@ FxRequestConstructorCallerIsDriver
@ FxRequestConstructorCallerIsFx

◆ FxRequestIrpOwnership

Enumerator
FxRequestOwnsIrp 
FxRequestDoesNotOwnIrp 

Definition at line 91 of file fxrequestbase.hpp.

91 {
94};
@ FxRequestDoesNotOwnIrp
@ FxRequestOwnsIrp

◆ FxRequestTargetFlags

Enumerator
FX_REQUEST_COMPLETED 
FX_REQUEST_PENDED 
FX_REQUEST_TIMER_SET 
FX_REQUEST_CANCELLED_FROM_TIMER 
FX_REQUEST_IGNORE_STATE 

Definition at line 52 of file fxrequestbase.hpp.

52 {
54 FX_REQUEST_PENDED = 0x02,
58};
@ FX_REQUEST_PENDED
@ FX_REQUEST_TIMER_SET
@ FX_REQUEST_IGNORE_STATE
@ FX_REQUEST_COMPLETED
@ FX_REQUEST_CANCELLED_FROM_TIMER

◆ FxRequestVerifierFlags

Enumerator
FXREQUEST_FLAG_DRIVER_OWNED 
FXREQUEST_FLAG_TAG_REQUEST 
FXREQUEST_FLAG_FORWARDED 
FXREQUEST_FLAG_DRIVER_DISPATCH 
FXREQUEST_FLAG_DRIVER_CANCELABLE 
FXREQUEST_FLAG_DRIVER_INPROCESS_CONTEXT 
FXREQUEST_FLAG_CANCELLED 
FXREQUEST_FLAG_FORMATTED 
FXREQUEST_FLAG_SENT_TO_TARGET 
FXREQUEST_FLAG_DRIVER_IN_EVTIOSTOP_CONTEXT 
FXREQUEST_FLAG_RESERVED_REQUEST_ASSOCIATED_WITH_IRP 

Definition at line 108 of file fxrequestbase.hpp.

108 {
109 // Request has been passed to the Driver
111
112 // Request was returned as a "Tag" request to WdfIoQueuePeekNextRequest.
114
115 // Request has been forwarded from one queue to another
117
118 // Request is being EvtIoDefault to the driver
120
121 // The driver has specified the request as cancelable
123
125
126 // The request has been cancelled
128
129 // the next stack location has been formatted
131
132 // the request has been sent on an I/O target and is in the target's sent list
134
135 // used to make sure the driver stop acknowledges in the context of EvtIoStop
137
138 // used to indicate whether the Reserved Request is in use or on Free list
140};
@ FXREQUEST_FLAG_DRIVER_INPROCESS_CONTEXT
@ FXREQUEST_FLAG_TAG_REQUEST
@ FXREQUEST_FLAG_FORMATTED
@ FXREQUEST_FLAG_CANCELLED
@ FXREQUEST_FLAG_DRIVER_CANCELABLE
@ FXREQUEST_FLAG_DRIVER_IN_EVTIOSTOP_CONTEXT
@ FXREQUEST_FLAG_FORWARDED
@ FXREQUEST_FLAG_SENT_TO_TARGET
@ FXREQUEST_FLAG_DRIVER_DISPATCH
@ FXREQUEST_FLAG_RESERVED_REQUEST_ASSOCIATED_WITH_IRP
@ FXREQUEST_FLAG_DRIVER_OWNED