ReactOS  0.4.15-dev-3207-ga415bd4
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 STATUS_REQUEST_NOT_ACCEPTED
Definition: ntstatus.h:444
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
return status
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
#define TRACINGIOTARGET
Definition: dbgtrace.h:72
Definition: ps.c:97

◆ 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  }
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
#define FxVerifierBugCheck(FxDriverGlobals, Error,...)
Definition: fxverifier.h:58
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
#define TRACINGIOTARGET
Definition: dbgtrace.h:72

◆ 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  }
#define GetHandle(h)
Definition: treelist.c:116
CCHAR GetCurrentIrpStackLocationIndex()
Definition: fxirpum.cpp:521
#define STATUS_REQUEST_NOT_ACCEPTED
Definition: ntstatus.h:444
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
MdIrp GetIrp(VOID)
Definition: fxirpum.cpp:15
return status
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
#define TRACINGIOTARGET
Definition: dbgtrace.h:72
FxIrp * irp
Definition: ps.c:97

◆ 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

◆ irql

◆ Request

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

Definition at line 1189 of file fxiotarget.cpp.

◆ status