ReactOS 0.4.15-dev-8408-g466a198
fxiotarget.cpp File Reference
Include dependency graph for fxiotarget.cpp:

Go to the source code of this file.

Macros

#define START_TAG   ((PVOID) ('trtS'))
 

Functions

_Must_inspect_result_ NTSTATUS FX_VF_METHOD (FxIoTarget, VerifySubmitLocked)(_In_ PFX_DRIVER_GLOBALS FxDriverGlobals
 
 PAGED_CODE_LOCKED ()
 
 if ((flags &FXREQUEST_FLAG_FORMATTED)==0x0)
 
else if (flags &FXREQUEST_FLAG_SENT_TO_TARGET)
 
else if (HasEnoughStackLocations(irp)==FALSE)
 
Request Unlock (irql)
 

Variables

_Must_inspect_result_ NTSTATUS _In_ FxRequestBaseRequest
 
KIRQL irql
 
SHORT flags = Request->GetVerifierFlagsLocked()
 
FxIrpirp = Request->GetSubmitFxIrp()
 
return status
 

Macro Definition Documentation

◆ START_TAG

#define START_TAG   ((PVOID) ('trtS'))

Definition at line 302 of file fxiotarget.cpp.

Function Documentation

◆ FX_VF_METHOD()

_Must_inspect_result_ NTSTATUS FX_VF_METHOD ( FxIoTarget  ,
VerifySubmitLocked   
)

◆ if() [1/3]

if ( (flags &FXREQUEST_FLAG_FORMATTED = = 0x0)

Definition at line 1201 of file fxiotarget.cpp.

1201 {
1203
1205 FxDriverGlobals, TRACE_LEVEL_ERROR, TRACINGIOTARGET,
1206 "WDFREQUEST %p has not been formatted, cannot send, %!STATUS!",
1207 Request->GetTraceObjectHandle(), status);
1208 }
#define TRACINGIOTARGET
Definition: dbgtrace.h:72
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
#define STATUS_REQUEST_NOT_ACCEPTED
Definition: ntstatus.h:444
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
Definition: ps.c:97
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547

◆ if() [2/3]

else if ( flags FXREQUEST_FLAG_SENT_TO_TARGET)

Definition at line 1209 of file fxiotarget.cpp.

1209 {
1210 //
1211 // Technically this is the same check as m_IrpCompletionReferenceCount
1212 // above, but we make this check in many more locations.
1213 //
1215 FxDriverGlobals, TRACE_LEVEL_ERROR, TRACINGIOTARGET,
1216 "WDFREQUEST %p is already pending on a WDFIOTARGET",
1217 Request->GetTraceObjectHandle());
1218
1219 FxVerifierBugCheck(FxDriverGlobals,
1222 (ULONG_PTR) Request->GetHandle());
1223 }
#define FxVerifierBugCheck(FxDriverGlobals, Error,...)
Definition: fxverifier.h:58
uint32_t ULONG_PTR
Definition: typedefs.h:65
@ WDF_REQUEST_FATAL_ERROR
Definition: wdfbugcodes.h:63
@ WDF_REQUEST_FATAL_ERROR_REQUEST_ALREADY_SENT
Definition: wdfbugcodes.h:78

◆ if() [3/3]

else if ( HasEnoughStackLocations(irp = FALSE)

Definition at line 1224 of file fxiotarget.cpp.

1224 {
1226
1227 //
1228 // For reasons why we subtract 1 from CurrentLocation, see comments
1229 // in FxIoTarget::HasEnoughStackLocations.
1230 //
1232 FxDriverGlobals, TRACE_LEVEL_ERROR, TRACINGIOTARGET,
1233 "WDFREQUEST %p, PIRP %p does not have enough stack locations %d"
1234 " for this WDFIOTARGET %p (requires %d locations), %!STATUS!",
1235 Request->GetTraceObjectHandle(), irp->GetIrp(), irp->GetCurrentIrpStackLocationIndex() - 1,
1236 GetHandle(), m_TargetStackSize, status);
1237 }
CCHAR GetCurrentIrpStackLocationIndex()
Definition: fxirpum.cpp:521
MdIrp GetIrp(VOID)
Definition: fxirpum.cpp:15
FxIrp * irp
#define GetHandle(h)
Definition: treelist.c:116

◆ PAGED_CODE_LOCKED()

PAGED_CODE_LOCKED ( )

◆ Unlock()

Request Unlock ( irql  )

Variable Documentation

◆ flags

flags = Request->GetVerifierFlagsLocked()

Definition at line 1192 of file fxiotarget.cpp.

◆ irp

irp = Request->GetSubmitFxIrp()

Definition at line 1193 of file fxiotarget.cpp.

Referenced by if().

◆ irql

Request Lock& irql

Definition at line 1191 of file fxiotarget.cpp.

◆ Request

Initial value:
{
LONG NTSTATUS
Definition: precomp.h:26
#define STATUS_SUCCESS
Definition: shellext.h:65

Definition at line 1187 of file fxiotarget.cpp.

◆ status

Definition at line 1240 of file fxiotarget.cpp.