ReactOS 0.4.16-dev-1946-g52006dd
fxdmatransactionapi.cpp File Reference
#include "fxdmapch.hpp"
Include dependency graph for fxdmatransactionapi.cpp:

Go to the source code of this file.

Functions

_Must_inspect_result_ __drv_maxIRQL (DISPATCH_LEVEL) WDFAPI NTSTATUS NTAPI WDFEXPORT(WdfDmaTransactionCreate)(__in PWDF_DRIVER_GLOBALS DriverGlobals
 
 FxObjectHandleGetPtrAndGlobals (GetFxDriverGlobals(DriverGlobals), DmaEnabler, FX_TYPE_DMA_ENABLER,(PVOID *) &pDmaEnabler, &pFxDriverGlobals)
 
 FxPointerNotNull (pFxDriverGlobals, DmaTransactionHandle)
 
 if (!NT_SUCCESS(status))
 
 switch (pDmaEnabler->GetProfile())
 
 FxObjectHandleGetPtrAndGlobals (GetFxDriverGlobals(DriverGlobals), DmaTransaction, FX_TYPE_DMA_TRANSACTION,(PVOID *) &pDmaTrans, &pFxDriverGlobals)
 
 FxPointerNotNull (pFxDriverGlobals, EvtProgramDmaFunction)
 
 if (DmaDirection !=WdfDmaDirectionReadFromDevice &&DmaDirection !=WdfDmaDirectionWriteToDevice)
 
 FxObjectHandleGetPtr (pFxDriverGlobals, Request, FX_TYPE_REQUEST,(PVOID *) &pReqObj)
 
 switch (stack->MajorFunction)
 
 if (reqLength==0)
 
 if (pDmaTrans->GetDmaEnabler() ->SupportsChainedMdls()==FALSE)
 
pDmaTrans SetRequest (pReqObj)
 
_Must_inspect_result_ __in WDFDMATRANSACTION __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION __in PMDL __in size_t __in __drv_when (Length==0, __drv_reportError(Length cannot be zero)) size_t Length)
 
 FxObjectHandleGetPtr (GetFxDriverGlobals(DriverGlobals), DmaTransaction, FX_TYPE_DMA_TRANSACTION,(PVOID *) &pDmaTrans)
 
return pDmaTrans Execute (Context)
 
 __success (TRUE) __drv_maxIRQL(DISPATCH_LEVEL) WDFAPI NTSTATUS NTAPI WDFEXPORT(WdfDmaTransactionRelease)(__in PWDF_DRIVER_GLOBALS DriverGlobals
 
pDmaTrans ReleaseForReuse (FALSE)
 
 FxPointerNotNull (pDmaTrans->GetDriverGlobals(), pStatus)
 
return pDmaTrans DmaCompleted (0, pStatus, FxDmaCompletionTypeFull)
 
return pDmaTrans DmaCompleted (TransferredLength, pStatus, FxDmaCompletionTypePartial)
 
return pDmaTrans DmaCompleted (FinalTransferredLength, pStatus, FxDmaCompletionTypeAbort)
 
return pDmaTrans GetBytesTransferred ()
 
pDmaTrans SetMaximumFragmentLength (MaximumLength)
 
 if (pRequest !=NULL)
 
return pDmaTrans GetCurrentFragmentLength ()
 
return pDmaTrans GetDmaEnabler () -> GetDeviceHandle()
 
 if ((profile !=WdfDmaProfileSystem) &&(profile !=WdfDmaProfileSystemDuplex))
 
systemTransaction SetConfigureChannelCallback (ConfigureRoutine, ConfigureContext)
 
systemTransaction SetTransferCompleteCallback (DmaCompletionRoutine, DmaCompletionContext)
 
systemTransaction SetDeviceAddressOffset (Offset)
 
 if (pDmaTrans->GetDmaEnabler() ->UsesDmaV3()==FALSE)
 
 if ((state==FxDmaTransactionStateInvalid)||(state==FxDmaTransactionStateCreated)||(state==FxDmaTransactionStateReleased)||(state==FxDmaTransactionStateDeleted))
 
return pDmaTrans GetTransferContext ()
 
pDmaTrans GetTransferInfo (MapRegisterCount, ScatterGatherElementCount)
 
pDmaTrans SetImmediateExecution (UseImmediateExecution)
 
 if ((profile !=WdfDmaProfilePacket) &&(profile !=WdfDmaProfilePacket64) &&(profile !=WdfDmaProfileSystem) &&(profile !=WdfDmaProfileSystemDuplex))
 
 FxPointerNotNull (pFxDriverGlobals, EvtReserveDmaFunction)
 
pDmaTrans ReleaseAdapter ()
 
return pDmaTrans CancelResourceAllocation ()
 
systemTransaction StopTransfer ()
 

Variables

_Must_inspect_result_ __in WDFDMAENABLER DmaEnabler
 
_Must_inspect_result_ __in WDFDMAENABLER __in_opt WDF_OBJECT_ATTRIBUTESAttributes
 
_Must_inspect_result_ __in WDFDMAENABLER __in_opt WDF_OBJECT_ATTRIBUTES __out WDFDMATRANSACTION * DmaTransactionHandle
 
FxDmaEnablerpDmaEnabler
 
PFX_DRIVER_GLOBALS pFxDriverGlobals
 
 status
 
_Must_inspect_result_ __in WDFDMATRANSACTION DmaTransaction
 
_Must_inspect_result_ __in WDFDMATRANSACTION __in WDFREQUEST Request
 
_Must_inspect_result_ __in WDFDMATRANSACTION __in WDFREQUEST __in PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction
 
_Must_inspect_result_ __in WDFDMATRANSACTION __in WDFREQUEST __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION DmaDirection
 
FxDmaTransactionBasepDmaTrans
 
FxRequestpReqObj
 
MDLmdl = NULL
 
PIO_STACK_LOCATION stack = pReqObj->GetFxIrp()->GetCurrentIrpStackLocation()
 
ULONG reqLength = 0
 
return STATUS_SUCCESS
 
_Must_inspect_result_ __in WDFDMATRANSACTION __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION __in PMDL Mdl
 
_Must_inspect_result_ __in WDFDMATRANSACTION __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION __in PMDL __in size_t Offset
 
_Must_inspect_result_ __in WDFDMATRANSACTION __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION __in PMDL __in PVOID VirtualAddress
 
_Must_inspect_result_ __in WDFDMATRANSACTION __in_opt WDFCONTEXT Context
 
__in WDFDMATRANSACTION __out NTSTATUSpStatus
 
__in WDFDMATRANSACTION __in size_t TransferredLength
 
__in WDFDMATRANSACTION __in size_t FinalTransferredLength
 
__in WDFDMATRANSACTION __in size_t MaximumLength
 
FxRequestpRequest = pDmaTrans->GetRequest()
 
 else
 
__in WDFDMATRANSACTION __in_opt PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL ConfigureRoutine
 
__in WDFDMATRANSACTION __in_opt PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL __in_opt PVOID ConfigureContext
 
WDF_DMA_PROFILE profile = pDmaTrans->GetDmaEnabler()->GetProfile()
 
FxDmaSystemTransactionsystemTransaction = (FxDmaSystemTransaction*) pDmaTrans
 
__in WDFDMATRANSACTION __in_opt PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine
 
__in WDFDMATRANSACTION __in_opt PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE __in_opt PVOID DmaCompletionContext
 
FxDmaTransactionState state = pDmaTrans->GetTransactionState()
 
__in WDFDMATRANSACTION __out_opt ULONGMapRegisterCount
 
__in WDFDMATRANSACTION __out_opt ULONG __out_opt ULONGScatterGatherElementCount
 
__in WDFDMATRANSACTION __in BOOLEAN UseImmediateExecution
 
__in WDFDMATRANSACTION __in WDF_DMA_DIRECTION __in ULONG RequiredMapRegisters
 
__in WDFDMATRANSACTION __in WDF_DMA_DIRECTION __in ULONG __in PFN_WDF_RESERVE_DMA EvtReserveDmaFunction
 
__in WDFDMATRANSACTION __in WDF_DMA_DIRECTION __in ULONG __in PFN_WDF_RESERVE_DMA __in PVOID EvtReserveDmaContext
 
 return
 

Function Documentation

◆ __drv_maxIRQL()

◆ __drv_when()

Definition at line 383 of file fxdmatransactionapi.cpp.

386{
387 //
388 // Stub this out by calling the regular initialize method. Eventually
389 // the regular initialize method will call this instead.
390 //
391
392 return WDFEXPORT(WdfDmaTransactionInitialize)(
393 DriverGlobals,
397 Mdl,
399 Length
400 );
401}
_Must_inspect_result_ __in WDFDMATRANSACTION DmaTransaction
_Must_inspect_result_ __in WDFDMATRANSACTION __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION __in PMDL Mdl
_Must_inspect_result_ __in WDFDMATRANSACTION __in WDFREQUEST __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION DmaDirection
_Must_inspect_result_ __in WDFDMATRANSACTION __in WDFREQUEST __in PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction
_Must_inspect_result_ __in WDFDMATRANSACTION __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION __in PMDL __in size_t Offset
#define WDFEXPORT(a)
Definition: fxmacros.hpp:157
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
void * PVOID
Definition: typedefs.h:50
uint32_t ULONG_PTR
Definition: typedefs.h:65
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
#define MmGetMdlVirtualAddress(_Mdl)

◆ __success()

__success ( TRUE  )

◆ CancelResourceAllocation()

return pDmaTrans CancelResourceAllocation ( )

◆ DmaCompleted() [1/3]

return pDmaTrans DmaCompleted ( ,
pStatus  ,
FxDmaCompletionTypeFull   
)

◆ DmaCompleted() [2/3]

◆ DmaCompleted() [3/3]

◆ Execute()

return pDmaTrans Execute ( Context  )

◆ FxObjectHandleGetPtr() [1/2]

FxObjectHandleGetPtr ( GetFxDriverGlobals(DriverGlobals)  ,
DmaTransaction  ,
FX_TYPE_DMA_TRANSACTION  ,
(PVOID *) &  pDmaTrans 
)

◆ FxObjectHandleGetPtr() [2/2]

FxObjectHandleGetPtr ( pFxDriverGlobals  ,
Request  ,
FX_TYPE_REQUEST  ,
(PVOID *) &  pReqObj 
)

Referenced by __success().

◆ FxObjectHandleGetPtrAndGlobals() [1/2]

FxObjectHandleGetPtrAndGlobals ( GetFxDriverGlobals(DriverGlobals)  ,
DmaEnabler  ,
FX_TYPE_DMA_ENABLER  ,
(PVOID *) &  pDmaEnabler,
pFxDriverGlobals 
)

◆ FxObjectHandleGetPtrAndGlobals() [2/2]

FxObjectHandleGetPtrAndGlobals ( GetFxDriverGlobals(DriverGlobals)  ,
DmaTransaction  ,
FX_TYPE_DMA_TRANSACTION  ,
(PVOID *) &  pDmaTrans,
pFxDriverGlobals 
)

◆ FxPointerNotNull() [1/4]

FxPointerNotNull ( pDmaTrans->  GetDriverGlobals(),
pStatus   
)

◆ FxPointerNotNull() [2/4]

FxPointerNotNull ( pFxDriverGlobals  ,
DmaTransactionHandle   
)

◆ FxPointerNotNull() [3/4]

FxPointerNotNull ( pFxDriverGlobals  ,
EvtProgramDmaFunction   
)

◆ FxPointerNotNull() [4/4]

FxPointerNotNull ( pFxDriverGlobals  ,
EvtReserveDmaFunction   
)

◆ GetBytesTransferred()

return pDmaTrans GetBytesTransferred ( )

◆ GetCurrentFragmentLength()

return pDmaTrans GetCurrentFragmentLength ( )

◆ GetDmaEnabler()

return pDmaTrans GetDmaEnabler ( ) -> GetDeviceHandle()

◆ GetTransferContext()

◆ GetTransferInfo()

◆ if() [1/9]

if ( NT_SUCCESSstatus)

Definition at line 69 of file fxdmatransactionapi.cpp.

69 {
70 return status;
71 }

◆ if() [2/9]

Definition at line 1114 of file fxdmatransactionapi.cpp.

1117 {
1118
1120
1122 "Cannot call %!FUNC! on non packet or system "
1123 "profile WDFDMATRANSACTION (%p) (transaction "
1124 "profile is %!WDF_DMA_PROFILE!) - %!STATUS!.",
1126 profile,
1127 status);
1129 return status;
1130 }
#define TRACINGDMA
Definition: dbgtrace.h:71
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
FxVerifierDbgBreakPoint(pFxDriverGlobals)
WDF_DMA_PROFILE profile
PFX_DRIVER_GLOBALS pFxDriverGlobals
#define TRACE_LEVEL_ERROR
Definition: storswtr.h:27
Definition: ps.c:97
#define STATUS_INVALID_DEVICE_REQUEST
Definition: udferr_usr.h:138
_Must_inspect_result_ _In_ WDFDMAENABLER _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDMATRANSACTION * DmaTransaction

◆ if() [3/9]

Definition at line 820 of file fxdmatransactionapi.cpp.

821 {
823 "Cannot call %!FUNC! on non-system-profile "
824 "WDFDMATRANSACTION (%p) (transaction profile "
825 "is %!WDF_DMA_PROFILE!).",
827 profile);
829 return;
830 }

◆ if() [4/9]

Definition at line 975 of file fxdmatransactionapi.cpp.

978 {
980 "Cannot call %!FUNC! on WDFDMATRANSACTION %p "
981 "becuase it is uninitialized, reused, deleted "
982 "(state is %!FxDmaTransactionState!).",
984 state
985 );
987 return NULL;
988 }
#define NULL
Definition: types.h:112
FxDmaTransactionState state

◆ if() [5/9]

Definition at line 146 of file fxdmatransactionapi.cpp.

147 {
151 "Initialization of WDFDMATRANSACTION 0x%p using WDFREQUEST %p, "
152 "DmaDirection 0x%x is an invalid value, %!STATUS!",
154 return status;
155 }
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
_In_ WDFDMAENABLER _In_ WDF_DMA_DIRECTION DmaDirection

◆ if() [6/9]

if ( pDmaTrans->  GetDmaEnabler) ->SupportsChainedMdls( = FALSE)

Definition at line 321 of file fxdmatransactionapi.cpp.

321 {
323
325
326 if (reqLength > length) {
330 "WDFREQUEST %p transfer length (%d) is out of bounds of MDL "
331 "Byte count (%d), %!STATUS!",
333
334 return status;
335 }
336 }
MDL * mdl
ULONG reqLength
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
uint32_t ULONG
Definition: typedefs.h:59
#define MmGetMdlByteCount(_Mdl)

◆ if() [7/9]

if ( pDmaTrans->  GetDmaEnabler) ->UsesDmaV3( = FALSE)

Definition at line 962 of file fxdmatransactionapi.cpp.

962 {
964 "Cannot call %!FUNC! for WDFDMATRANSACTION %p "
965 "because the parent WDFDMAENABLER (%p) is not "
966 "configured to use DMA version 3.",
970 return NULL;
971 }
__inline WDFDMAENABLER GetHandle(VOID)
__forceinline FxDmaEnabler * GetDmaEnabler(VOID)
FxDmaTransactionBase * pDmaTrans

◆ if() [8/9]

if ( pRequest = NULL)

Definition at line 740 of file fxdmatransactionapi.cpp.

740 {
741 return pRequest->GetHandle();
742 }
__inline WDFREQUEST GetHandle(VOID)
FxRequest * pRequest

◆ if() [9/9]

if ( reqLength  = = 0)

Definition at line 307 of file fxdmatransactionapi.cpp.

307 {
311 "Zero length request, %!STATUS!", status);
312 return status;
313 }

◆ ReleaseAdapter()

pDmaTrans ReleaseAdapter ( )

◆ ReleaseForReuse()

pDmaTrans ReleaseForReuse ( FALSE  )

◆ SetConfigureChannelCallback()

systemTransaction SetConfigureChannelCallback ( ConfigureRoutine  ,
ConfigureContext   
)

◆ SetDeviceAddressOffset()

systemTransaction SetDeviceAddressOffset ( Offset  )

◆ SetImmediateExecution()

pDmaTrans SetImmediateExecution ( UseImmediateExecution  )

◆ SetMaximumFragmentLength()

pDmaTrans SetMaximumFragmentLength ( MaximumLength  )

◆ SetRequest()

pDmaTrans SetRequest ( pReqObj  )

◆ SetTransferCompleteCallback()

systemTransaction SetTransferCompleteCallback ( DmaCompletionRoutine  ,
DmaCompletionContext   
)

◆ StopTransfer()

systemTransaction StopTransfer ( )

◆ switch() [1/2]

switch ( pDmaEnabler->  GetProfile())

Definition at line 73 of file fxdmatransactionapi.cpp.

74 {
81 break;
82
92 );
93 break;
94
101 break;
102
103 default:
104 NT_ASSERTMSG("Unknown profile for DMA enabler", FALSE);
106 break;
107 }
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in FxDmaEnabler *DmaEnabler, __out WDFDMATRANSACTION *Transaction)
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in FxDmaEnabler *DmaEnabler, __out WDFDMATRANSACTION *Transaction)
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in FxDmaEnabler *DmaEnabler, __out WDFDMATRANSACTION *Transaction)
#define FALSE
Definition: types.h:117
_Must_inspect_result_ __in WDFDMAENABLER __in_opt WDF_OBJECT_ATTRIBUTES __out WDFDMATRANSACTION * DmaTransactionHandle
FxDmaEnabler * pDmaEnabler
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
@ WdfDmaProfileScatterGather
Definition: wdfdmaenabler.h:55
@ WdfDmaProfilePacket
Definition: wdfdmaenabler.h:54
@ WdfDmaProfileScatterGatherDuplex
Definition: wdfdmaenabler.h:58
@ WdfDmaProfileSystem
Definition: wdfdmaenabler.h:60
@ WdfDmaProfileSystemDuplex
Definition: wdfdmaenabler.h:61
@ WdfDmaProfilePacket64
Definition: wdfdmaenabler.h:56
@ WdfDmaProfileScatterGather64Duplex
Definition: wdfdmaenabler.h:59
@ WdfDmaProfileScatterGather64
Definition: wdfdmaenabler.h:57
#define NT_ASSERTMSG
Definition: rtlfuncs.h:3328

◆ switch() [2/2]

switch ( stack->  MajorFunction)

Definition at line 169 of file fxdmatransactionapi.cpp.

169 {
170
171 case IRP_MJ_READ:
172
175
177 "Dma direction %!WDF_DMA_DIRECTION! of WDFTRANSACTION "
178 "0x%p doesn't match with the WDFREQUEST 0x%p type "
179 "%!WDF_REQUEST_TYPE! %!STATUS!",
181 stack->MajorFunction, status);
182
183 return status;
184 }
185
186 reqLength = stack->Parameters.Read.Length;
187
189 break;
190
191 case IRP_MJ_WRITE:
192
195
197 "Dma direction %!WDF_DMA_DIRECTION! of WDFTRANSACTION "
198 "0x%p doesn't match with the WDFREQUEST 0x%p type "
199 "%!WDF_REQUEST_TYPE! %!STATUS!",
201 stack->MajorFunction, status);
202
203 return status;
204 }
205
206 reqLength = stack->Parameters.Write.Length;
207
209 break;
210
213
214 switch (METHOD_FROM_CTL_CODE(stack->Parameters.DeviceIoControl.IoControlCode)) {
215 case METHOD_BUFFERED:
216
218 reqLength = stack->Parameters.DeviceIoControl.InputBufferLength;
219 } else {
220 reqLength = stack->Parameters.DeviceIoControl.OutputBufferLength;
221 }
222
223 //
224 // In this case both input buffer and output buffer map
225 // to the same MDL and it's probed for read & write access.
226 // So it's okay for DMA transfer in either direction.
227 //
229 break;
230
231 case METHOD_IN_DIRECT:
232 //
233 // For this type, the output buffer is probed for read access.
234 // So the direction of DMA transfer is WdfDmaDirectionWriteToDevice.
235 //
237
239
242 "Dma direction %!WDF_DMA_DIRECTION! of WDFTRANSACTION "
243 "0x%p doesn't match with WDFREQUEST 0x%p ioctl type "
244 "METHOD_IN_DIRECT %!STATUS!",
246 return status;
247 }
248
249 reqLength = stack->Parameters.DeviceIoControl.OutputBufferLength;
250
252
253 break;
254
256 //
257 // For this type, the output buffer is probed for write access.
258 // So the direction of DMA transfer is WdfDmaDirectionReadFromDevice.
259 //
261
263
266 "Dma direction %!WDF_DMA_DIRECTION! of WDFTRANSACTION "
267 "0x%p doesn't match with WDFREQUEST 0x%p ioctl type "
268 "METHOD_OUT_DIRECT %!STATUS!",
270
271 return status;
272 }
273
274 reqLength = stack->Parameters.DeviceIoControl.OutputBufferLength;
275
277
278 break;
279 default:
280
282
284 "Invalid ioctl code in WDFREQUEST 0x%p %!STATUS!",
285 Request, status);
286
288 break;
289
290 }// End of switch(ioctType)
291 break;
292
293 default:
295 break;
296
297 }
_Must_inspect_result_ NTSTATUS GetDeviceControlOutputMdl(__out PMDL *pMdl)
_Must_inspect_result_ NTSTATUS GetMdl(__out PMDL *pMdl)
Definition: fxrequestkm.cpp:80
FxRequest * pReqObj
#define METHOD_OUT_DIRECT
Definition: nt_native.h:596
#define METHOD_BUFFERED
Definition: nt_native.h:594
#define METHOD_IN_DIRECT
Definition: nt_native.h:595
#define IRP_MJ_READ
Definition: rdpdr.c:46
#define IRP_MJ_DEVICE_CONTROL
Definition: rdpdr.c:52
#define IRP_MJ_WRITE
Definition: rdpdr.c:47
Definition: format.c:80
@ WdfDmaDirectionReadFromDevice
Definition: wdfdmaenabler.h:65
@ WdfDmaDirectionWriteToDevice
Definition: wdfdmaenabler.h:66
#define METHOD_FROM_CTL_CODE(ctrlCode)
#define IRP_MJ_INTERNAL_DEVICE_CONTROL

Variable Documentation

◆ Attributes

◆ ConfigureContext

◆ ConfigureRoutine

◆ Context

Initial value:

Definition at line 539 of file fxdmatransactionapi.cpp.

◆ DmaCompletionContext

◆ DmaCompletionRoutine

◆ DmaDirection

Initial value:
{
LONG NTSTATUS
Definition: precomp.h:26

Definition at line 127 of file fxdmatransactionapi.cpp.

Referenced by __drv_when().

◆ DmaEnabler

Definition at line 44 of file fxdmatransactionapi.cpp.

◆ DmaTransaction

__in WDFDMATRANSACTION DmaTransaction
Initial value:

Definition at line 121 of file fxdmatransactionapi.cpp.

Referenced by __drv_when().

◆ DmaTransactionHandle

* DmaTransactionHandle
Initial value:

Definition at line 48 of file fxdmatransactionapi.cpp.

Referenced by switch().

◆ else

else
Initial value:
{
return NULL

Definition at line 743 of file fxdmatransactionapi.cpp.

◆ EvtProgramDmaFunction

◆ EvtReserveDmaContext

◆ EvtReserveDmaFunction

◆ FinalTransferredLength

Definition at line 652 of file fxdmatransactionapi.cpp.

◆ MapRegisterCount

__in WDFDMATRANSACTION __out_opt ULONG* MapRegisterCount

Definition at line 1003 of file fxdmatransactionapi.cpp.

◆ MaximumLength

__in WDFDMATRANSACTION __in size_t MaximumLength
Initial value:

Definition at line 706 of file fxdmatransactionapi.cpp.

◆ mdl

◆ Mdl

◆ Offset

__in WDFDMATRANSACTION __in ULONG Offset
Initial value:

Definition at line 381 of file fxdmatransactionapi.cpp.

Referenced by __drv_when().

◆ pDmaEnabler

FxDmaEnabler* pDmaEnabler

Definition at line 52 of file fxdmatransactionapi.cpp.

Referenced by switch().

◆ pDmaTrans

Definition at line 131 of file fxdmatransactionapi.cpp.

Referenced by __success(), and if().

◆ pFxDriverGlobals

PFX_DRIVER_GLOBALS pFxDriverGlobals

Definition at line 53 of file fxdmatransactionapi.cpp.

Referenced by if(), and switch().

◆ pReqObj

FxRequest* pReqObj

Definition at line 132 of file fxdmatransactionapi.cpp.

Referenced by switch().

◆ pRequest

◆ profile

Definition at line 819 of file fxdmatransactionapi.cpp.

Referenced by if().

◆ pStatus

◆ reqLength

reqLength = 0

Definition at line 135 of file fxdmatransactionapi.cpp.

Referenced by if(), and switch().

◆ Request

_Must_inspect_result_ __in WDFDMATRANSACTION __in WDFREQUEST Request

Definition at line 123 of file fxdmatransactionapi.cpp.

◆ RequiredMapRegisters

Definition at line 1073 of file fxdmatransactionapi.cpp.

◆ return

return

Definition at line 1212 of file fxdmatransactionapi.cpp.

◆ ScatterGatherElementCount

◆ stack

stack = pReqObj->GetFxIrp()->GetCurrentIrpStackLocation()

Definition at line 134 of file fxdmatransactionapi.cpp.

◆ state

FxDmaTransactionState state = pDmaTrans->GetTransactionState()

Definition at line 973 of file fxdmatransactionapi.cpp.

Referenced by if().

◆ status

Initial value:
)
@ FX_VALIDATE_OPTION_PARENT_NOT_ALLOWED
_Must_inspect_result_ NTSTATUS FxValidateObjectAttributes(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in ULONG Flags=FX_VALIDATE_OPTION_NONE_SPECIFIED)

Definition at line 65 of file fxdmatransactionapi.cpp.

Referenced by if(), and switch().

◆ STATUS_SUCCESS

return STATUS_SUCCESS

Definition at line 360 of file fxdmatransactionapi.cpp.

◆ systemTransaction

◆ TransferredLength

__in WDFDMATRANSACTION __in size_t TransferredLength

Definition at line 620 of file fxdmatransactionapi.cpp.

◆ UseImmediateExecution

Initial value:

Definition at line 1034 of file fxdmatransactionapi.cpp.

◆ VirtualAddress