113WDFEXPORT(WdfDmaTransactionInitializeUsingRequest)(
147 "Initialization of WDFDMATRANSACTION 0x%p using WDFREQUEST %p, "
148 "DmaDirection 0x%x is an invalid value, %!STATUS!",
173 "Dma direction %!WDF_DMA_DIRECTION! of WDFTRANSACTION "
174 "0x%p doesn't match with the WDFREQUEST 0x%p type "
175 "%!WDF_REQUEST_TYPE! %!STATUS!",
193 "Dma direction %!WDF_DMA_DIRECTION! of WDFTRANSACTION "
194 "0x%p doesn't match with the WDFREQUEST 0x%p type "
195 "%!WDF_REQUEST_TYPE! %!STATUS!",
238 "Dma direction %!WDF_DMA_DIRECTION! of WDFTRANSACTION "
239 "0x%p doesn't match with WDFREQUEST 0x%p ioctl type "
240 "METHOD_IN_DIRECT %!STATUS!",
262 "Dma direction %!WDF_DMA_DIRECTION! of WDFTRANSACTION "
263 "0x%p doesn't match with WDFREQUEST 0x%p ioctl type "
264 "METHOD_OUT_DIRECT %!STATUS!",
280 "Invalid ioctl code in WDFREQUEST 0x%p %!STATUS!",
297 "Couldn't retrieve mdl from WDFREQUEST 0x%p for "
298 "WDFTRANSACTION 0x%p %!STATUS!",
307 "Zero length request, %!STATUS!",
status);
326 "WDFREQUEST %p transfer length (%d) is out of bounds of MDL "
327 "Byte count (%d), %!STATUS!",
345 "WDFTANSACTION 0x%p initialization failed: "
363WDFEXPORT(WdfDmaTransactionInitializeUsingOffset)(
386 return WDFEXPORT(WdfDmaTransactionInitialize)(
439 "Can't initialize WDFDMATRANSACTION 0x%p with "
449 "Initialization of WDFDMATRANSACTION 0x%p,DmaDirection 0x%x is an "
465 "VirtualAddress %p is not within the Mdl bounds, StartVA (%p) + "
466 "ByteCount (0x%x), %!STATUS! ",
491 "VirtualAddress+Length (%p+%I64d) is out of bounds of MDL VA + MDL "
492 "Byte count (max address is %p). "
493 "Possibly a chained MDL, %!STATUS!",
512 "WDFTANSACTION 0x%p initialization failed: "
598WDFEXPORT(WdfDmaTransactionDmaCompletedWithLength)(
628WDFEXPORT(WdfDmaTransactionDmaCompletedFinal)(
659WDFEXPORT(WdfDmaTransactionGetBytesTransferred)(
678WDFEXPORT(WdfDmaTransactionSetMaximumLength)(
726WDFEXPORT(WdfDmaTransactionGetCurrentDmaTransferLength)(
765WDFEXPORT(WdfDmaTransactionSetChannelConfigurationCallback)(
793 "Cannot call %!FUNC! on non-system-profile "
794 "WDFDMATRANSACTION (%p) (transaction profile "
795 "is %!WDF_DMA_PROFILE!).",
814WDFEXPORT(WdfDmaTransactionSetTransferCompleteCallback)(
842 "Cannot call %!FUNC! on non-system-profile "
843 "WDFDMATRANSACTION (%p) (transaction profile "
844 "is %!WDF_DMA_PROFILE!).",
864WDFEXPORT(WdfDmaTransactionSetDeviceAddressOffset)(
890 "Cannot call %!FUNC! on non-system-profile "
891 "WDFDMATRANSACTION (%p) (transaction profile "
892 "is %!WDF_DMA_PROFILE!).",
910WDFEXPORT(WdfDmaTransactionWdmGetTransferContext)(
928 "Cannot call %!FUNC! for WDFDMATRANSACTION %p "
929 "because the parent WDFDMAENABLER (%p) is not "
930 "configured to use DMA version 3.",
944 "Cannot call %!FUNC! on WDFDMATRANSACTION %p "
945 "becuase it is uninitialized, reused, deleted "
946 "(state is %!FxDmaTransactionState!).",
959WDFEXPORT(WdfDmaTransactionGetTransferInfo)(
988WDFEXPORT(WdfDmaTransactionSetImmediateExecution)(
1009 "Cannot call %!FUNC! for WDFDMATRANSACTION %p "
1010 "because the parent WDFDMAENABLER (%p) is not "
1011 "configured to use DMA version 3.",
1023WDFEXPORT(WdfDmaTransactionAllocateResources)(
1058 "Cannot call %!FUNC! on WDFDMATRANSACTION %p "
1059 "because WDFDMAENABLER %p was not configured "
1060 "for DMA version 3 - %!STATUS!.",
1080 "Cannot call %!FUNC! on non packet or system "
1081 "profile WDFDMATRANSACTION (%p) (transaction "
1082 "profile is %!WDF_DMA_PROFILE!) - %!STATUS!.",
1098 "Allocation of DMA adapter for WDFDMATRANSACTION 0x%p, "
1099 "DmaDirection 0x%x is an invalid value, %!STATUS!",
1116WDFEXPORT(WdfDmaTransactionFreeResources)(
1141 "Cannot call %!FUNC! on non packet or system "
1142 "profile WDFDMATRANSACTION (%p) (transaction "
1143 "profile is %!WDF_DMA_PROFILE!).",
1157 "Cannot call %!FUNC! on WDFDMATRANSACTION %p "
1158 "because WDFDMAENABLER %p was not configured "
1159 "for DMA version 3",
1194 "Cannot call %!FUNC! WDFDMATRANSACTION (%p) "
1195 "because enabler is not using DMA version 3",
1206WDFEXPORT(WdfDmaTransactionStopSystemTransfer)(
1230 "Cannot call %!FUNC! on non-system-profile "
1231 "WDFDMATRANSACTION (%p) (transaction profile "
1232 "is %!WDF_DMA_PROFILE!).",
__inline BOOLEAN SupportsChainedMdls(VOID)
__inline WDF_DMA_PROFILE GetProfile(VOID)
__inline WDFDEVICE GetDeviceHandle(VOID)
__inline WDFDMAENABLER GetHandle(VOID)
VOID SetDeviceAddressOffset(__in ULONG Offset)
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)
VOID SetConfigureChannelCallback(__in_opt PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL Callback, __in_opt PVOID Context)
VOID SetTransferCompleteCallback(__in_opt PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE Callback, __in_opt PVOID Context)
__forceinline VOID SetMaximumFragmentLength(size_t MaximumFragmentLength)
__forceinline size_t GetCurrentFragmentLength(VOID)
VOID SetImmediateExecution(__in BOOLEAN Value)
__forceinline FxRequest * GetRequest(VOID)
__forceinline VOID SetRequest(__in FxRequest *Request)
VOID ReleaseForReuse(__in BOOLEAN ForceRelease)
__forceinline size_t GetBytesTransferred(VOID)
FxDmaTransactionState GetTransactionState(VOID)
PVOID GetTransferContext(VOID)
__forceinline FxDmaEnabler * GetDmaEnabler(VOID)
_Must_inspect_result_ NTSTATUS Execute(__in PVOID Context)
VOID GetTransferInfo(__out_opt ULONG *MapRegisterCount, __out_opt ULONG *ScatterGatherElementCount)
_Must_inspect_result_ NTSTATUS Initialize(__in PFN_WDF_PROGRAM_DMA ProgramDmaFunction, __in WDF_DMA_DIRECTION DmaDirection, __in PMDL Mdl, __in size_t Offset, __in ULONG Length)
BOOLEAN CancelResourceAllocation(VOID)
BOOLEAN DmaCompleted(__in size_t TransferredLength, __out NTSTATUS *ReturnStatus, __in FxDmaCompletionType CompletionType)
PIO_STACK_LOCATION GetCurrentIrpStackLocation(VOID)
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
__inline WDFREQUEST GetHandle(VOID)
_Must_inspect_result_ NTSTATUS GetDeviceControlOutputMdl(__out PMDL *pMdl)
_Must_inspect_result_ NTSTATUS GetMdl(__out PMDL *pMdl)
#define NT_SUCCESS(StatCode)
#define __drv_when(cond, annotes)
#define __drv_reportError(why)
#define __drv_maxIRQL(irql)
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
FxVerifierDbgBreakPoint(pFxDriverGlobals)
@ FxDmaTransactionStateDeleted
@ FxDmaTransactionStateInvalid
@ FxDmaTransactionStateReleased
@ FxDmaTransactionStateCreated
@ FxDmaCompletionTypeAbort
@ FxDmaCompletionTypePartial
@ FxDmaCompletionTypeFull
_Must_inspect_result_ __in WDFDMATRANSACTION DmaTransaction
__in WDFDMATRANSACTION __out_opt ULONG * MapRegisterCount
__in WDFDMATRANSACTION __in WDF_DMA_DIRECTION __in ULONG __in PFN_WDF_RESERVE_DMA EvtReserveDmaFunction
__in WDFDMATRANSACTION __in_opt PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine
__in WDFDMATRANSACTION __in size_t FinalTransferredLength
_Must_inspect_result_ __in WDFDMATRANSACTION __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION __in PMDL Mdl
__in WDFDMATRANSACTION __in_opt PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE __in_opt PVOID DmaCompletionContext
FxObjectHandleGetPtrAndGlobals(GetFxDriverGlobals(DriverGlobals), DmaEnabler, FX_TYPE_DMA_ENABLER,(PVOID *) &pDmaEnabler, &pFxDriverGlobals)
_Must_inspect_result_ __in WDFDMATRANSACTION __in WDFREQUEST Request
__in WDFDMATRANSACTION __out_opt ULONG __out_opt ULONG * ScatterGatherElementCount
_Must_inspect_result_ __in WDFDMATRANSACTION __in_opt WDFCONTEXT Context
_Must_inspect_result_ __in WDFDMATRANSACTION __in WDFREQUEST __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION DmaDirection
_Must_inspect_result_ __in WDFDMAENABLER __in_opt WDF_OBJECT_ATTRIBUTES __out WDFDMATRANSACTION * DmaTransactionHandle
__in WDFDMATRANSACTION __in_opt PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL ConfigureRoutine
_Must_inspect_result_ __in WDFDMATRANSACTION __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION __in PMDL __in PVOID VirtualAddress
__in WDFDMATRANSACTION __out NTSTATUS * pStatus
__in WDFDMATRANSACTION __in WDF_DMA_DIRECTION __in ULONG RequiredMapRegisters
FxDmaTransactionBase * pDmaTrans
_Must_inspect_result_ __in WDFDMATRANSACTION __in WDFREQUEST __in PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction
FxDmaEnabler * pDmaEnabler
FxDmaSystemTransaction * systemTransaction
FxObjectHandleGetPtr(pFxDriverGlobals, Request, FX_TYPE_REQUEST,(PVOID *) &pReqObj)
__in WDFDMATRANSACTION __in WDF_DMA_DIRECTION __in ULONG __in PFN_WDF_RESERVE_DMA __in PVOID EvtReserveDmaContext
__in WDFDMATRANSACTION __in_opt PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL __in_opt PVOID ConfigureContext
FxDmaTransactionState state
_Must_inspect_result_ __in WDFDMAENABLER DmaEnabler
__in WDFDMATRANSACTION __in BOOLEAN UseImmediateExecution
_Must_inspect_result_ __in WDFDMAENABLER __in_opt WDF_OBJECT_ATTRIBUTES * Attributes
__in WDFDMATRANSACTION __in size_t TransferredLength
__in WDFDMATRANSACTION __in size_t MaximumLength
_Must_inspect_result_ __in WDFDMATRANSACTION __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION __in PMDL __in size_t Offset
PFX_DRIVER_GLOBALS pFxDriverGlobals
__inline PFX_DRIVER_GLOBALS GetFxDriverGlobals(__in PWDF_DRIVER_GLOBALS DriverGlobals)
#define FxPointerNotNull(FxDriverGlobals, Ptr)
@ FX_TYPE_DMA_TRANSACTION
@ 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)
GLuint GLsizei GLsizei * length
#define _Must_inspect_result_
#define METHOD_OUT_DIRECT
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define IRP_MJ_DEVICE_CONTROL
#define TRACE_LEVEL_ERROR
#define STATUS_INVALID_DEVICE_REQUEST
#define STATUS_INVALID_PARAMETER
#define STATUS_UNSUCCESSFUL
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_Must_inspect_result_ _In_ WDFDMAENABLER DmaEnabler
#define WDF_PTR_GET_OFFSET(_base, _addr)
#define WDF_PTR_ADD_OFFSET(_ptr, _offset)
@ WdfDmaProfileScatterGather
@ WdfDmaProfileScatterGatherDuplex
@ WdfDmaProfileSystemDuplex
@ WdfDmaProfileScatterGather64Duplex
@ WdfDmaProfileScatterGather64
_In_ WDFDMAENABLER _In_ WDF_DMA_DIRECTION DmaDirection
enum _WDF_DMA_DIRECTION WDF_DMA_DIRECTION
WDF_EXTERN_C_START enum _WDF_DMA_PROFILE WDF_DMA_PROFILE
@ WdfDmaDirectionReadFromDevice
@ WdfDmaDirectionWriteToDevice
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE _In_opt_ PVOID DmaCompletionContext
EVT_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE * PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE
_In_ WDFDMATRANSACTION _In_ size_t FinalTransferredLength
_Must_inspect_result_ _In_ WDFDMAENABLER _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDMATRANSACTION * DmaTransaction
_In_ WDFDMATRANSACTION _In_ WDF_DMA_DIRECTION _In_ ULONG _In_ PFN_WDF_RESERVE_DMA _In_ PVOID EvtReserveDmaContext
_In_ WDFDMATRANSACTION _In_ BOOLEAN UseImmediateExecution
EVT_WDF_PROGRAM_DMA * PFN_WDF_PROGRAM_DMA
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL _In_opt_ PVOID ConfigureContext
EVT_WDF_RESERVE_DMA * PFN_WDF_RESERVE_DMA
_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_ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine
_In_ WDFDMATRANSACTION _In_ size_t MaximumLength
_In_ WDFDMATRANSACTION _In_ WDF_DMA_DIRECTION _In_ ULONG _In_ PFN_WDF_RESERVE_DMA EvtReserveDmaFunction
_In_ WDFDMATRANSACTION _Out_opt_ ULONG * MapRegisterCount
_In_ WDFDMATRANSACTION _In_ WDF_DMA_DIRECTION _In_ ULONG RequiredMapRegisters
_In_ WDFDMATRANSACTION _In_ size_t TransferredLength
EVT_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL * PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL
_In_ WDFDMATRANSACTION _Out_opt_ ULONG _Out_opt_ ULONG * ScatterGatherElementCount
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL ConfigureRoutine
#define METHOD_FROM_CTL_CODE(ctrlCode)
#define IRP_MJ_INTERNAL_DEVICE_CONTROL
#define MmGetMdlByteCount(_Mdl)
#define MmGetMdlVirtualAddress(_Mdl)