113 WDFEXPORT(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: " 363 WDFEXPORT(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: " 571 WDFEXPORT(WdfDmaTransactionDmaCompleted)(
598 WDFEXPORT(WdfDmaTransactionDmaCompletedWithLength)(
628 WDFEXPORT(WdfDmaTransactionDmaCompletedFinal)(
659 WDFEXPORT(WdfDmaTransactionGetBytesTransferred)(
678 WDFEXPORT(WdfDmaTransactionSetMaximumLength)(
726 WDFEXPORT(WdfDmaTransactionGetCurrentDmaTransferLength)(
765 WDFEXPORT(WdfDmaTransactionSetChannelConfigurationCallback)(
793 "Cannot call %!FUNC! on non-system-profile " 794 "WDFDMATRANSACTION (%p) (transaction profile " 795 "is %!WDF_DMA_PROFILE!).",
814 WDFEXPORT(WdfDmaTransactionSetTransferCompleteCallback)(
842 "Cannot call %!FUNC! on non-system-profile " 843 "WDFDMATRANSACTION (%p) (transaction profile " 844 "is %!WDF_DMA_PROFILE!).",
864 WDFEXPORT(WdfDmaTransactionSetDeviceAddressOffset)(
890 "Cannot call %!FUNC! on non-system-profile " 891 "WDFDMATRANSACTION (%p) (transaction profile " 892 "is %!WDF_DMA_PROFILE!).",
910 WDFEXPORT(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!).",
959 WDFEXPORT(WdfDmaTransactionGetTransferInfo)(
988 WDFEXPORT(WdfDmaTransactionSetImmediateExecution)(
1009 "Cannot call %!FUNC! for WDFDMATRANSACTION %p " 1010 "because the parent WDFDMAENABLER (%p) is not " 1011 "configured to use DMA version 3.",
1023 WDFEXPORT(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!",
1116 WDFEXPORT(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",
1206 WDFEXPORT(WdfDmaTransactionStopSystemTransfer)(
1230 "Cannot call %!FUNC! on non-system-profile " 1231 "WDFDMATRANSACTION (%p) (transaction profile " 1232 "is %!WDF_DMA_PROFILE!).",
__in WDFDMATRANSACTION __out_opt ULONG __out_opt ULONG * ScatterGatherElementCount
_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 __out NTSTATUS * pStatus
__forceinline VOID SetMaximumFragmentLength(size_t MaximumFragmentLength)
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define __drv_reportError(why)
_Must_inspect_result_ __in WDFDMAENABLER __in_opt WDF_OBJECT_ATTRIBUTES __out WDFDMATRANSACTION * DmaTransactionHandle
EVT_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE * PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE
__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
__inline WDF_DMA_PROFILE GetProfile(VOID)
#define MmGetMdlVirtualAddress(_Mdl)
#define WDF_PTR_ADD_OFFSET(_ptr, _offset)
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL ConfigureRoutine
#define METHOD_FROM_CTL_CODE(ctrlCode)
#define STATUS_INVALID_PARAMETER
_Must_inspect_result_ __in WDFDMATRANSACTION __in WDFREQUEST Request
PIO_STACK_LOCATION GetCurrentIrpStackLocation(VOID)
_Must_inspect_result_ __drv_maxIRQL(DISPATCH_LEVEL) NTSTATUS WDFEXPORT(WdfDmaTransactionCreate)(__in PWDF_DRIVER_GLOBALS DriverGlobals
#define STATUS_INVALID_DEVICE_REQUEST
__forceinline size_t GetBytesTransferred(VOID)
VOID SetImmediateExecution(__in BOOLEAN Value)
__forceinline FxRequest * GetRequest(VOID)
__in WDFDMATRANSACTION __in_opt PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE __in_opt PVOID DmaCompletionContext
VOID SetDeviceAddressOffset(__in ULONG Offset)
_Must_inspect_result_ NTSTATUS GetDeviceControlOutputMdl(__out PMDL *pMdl)
_Must_inspect_result_ NTSTATUS GetMdl(__out PMDL *pMdl)
_Must_inspect_result_ __in WDFDMATRANSACTION __in WDFREQUEST __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION DmaDirection
_In_ WDFDMATRANSACTION _Out_opt_ ULONG * MapRegisterCount
_In_ WDFDMATRANSACTION _In_ WDF_DMA_DIRECTION _In_ ULONG _In_ PFN_WDF_RESERVE_DMA _In_ PVOID EvtReserveDmaContext
WDF_EXTERN_C_START enum _WDF_DMA_PROFILE WDF_DMA_PROFILE
__inline WDFDEVICE GetDeviceHandle(VOID)
__in WDFDMATRANSACTION __in size_t MaximumLength
FxPointerNotNull(pFxDriverGlobals, DmaTransactionHandle)
__inline WDFDMAENABLER GetHandle(VOID)
GLenum GLuint GLenum GLsizei length
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction
VOID SetTransferCompleteCallback(__in_opt PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE Callback, __in_opt PVOID Context)
EVT_WDF_RESERVE_DMA * PFN_WDF_RESERVE_DMA
BOOLEAN DmaCompleted(__in size_t TransferredLength, __out NTSTATUS *ReturnStatus, __in FxDmaCompletionType CompletionType)
_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)
_Must_inspect_result_ __in WDFDMATRANSACTION __in_opt WDFCONTEXT Context
EVT_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL * PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL
PVOID GetTransferContext(VOID)
__in WDFDMATRANSACTION __in WDF_DMA_DIRECTION __in ULONG __in PFN_WDF_RESERVE_DMA __in PVOID EvtReserveDmaContext
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
_In_ WDFDMAENABLER _In_ WDF_DMA_DIRECTION DmaDirection
FxObjectHandleGetPtrAndGlobals(GetFxDriverGlobals(DriverGlobals), DmaEnabler, FX_TYPE_DMA_ENABLER,(PVOID *) &pDmaEnabler, &pFxDriverGlobals)
#define METHOD_OUT_DIRECT
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine
_In_ WDFDMATRANSACTION _In_ size_t MaximumLength
BOOLEAN CancelResourceAllocation(VOID)
_In_ WDFDMATRANSACTION _In_ size_t TransferredLength
__in WDFDMATRANSACTION __out_opt ULONG * MapRegisterCount
#define NT_SUCCESS(StatCode)
VOID ReleaseForReuse(__in BOOLEAN ForceRelease)
__forceinline FxDmaEnabler * GetDmaEnabler(VOID)
__in WDFDMATRANSACTION __in_opt PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL __in_opt PVOID ConfigureContext
_Must_inspect_result_ __in WDFDMATRANSACTION __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION __in PMDL __in PVOID VirtualAddress
__forceinline VOID SetRequest(__in FxRequest *Request)
#define IRP_MJ_INTERNAL_DEVICE_CONTROL
_In_ WDFDMATRANSACTION _In_ WDF_DMA_DIRECTION _In_ ULONG RequiredMapRegisters
__inline BOOLEAN SupportsChainedMdls(VOID)
__in WDFDMATRANSACTION __in size_t TransferredLength
#define STATUS_UNSUCCESSFUL
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in FxDmaEnabler *DmaEnabler, __out WDFDMATRANSACTION *Transaction)
FxDmaTransactionState state
_Must_inspect_result_ NTSTATUS FxValidateObjectAttributes(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in ULONG Flags=FX_VALIDATE_OPTION_NONE_SPECIFIED)
_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)
__forceinline size_t GetCurrentFragmentLength(VOID)
#define _Must_inspect_result_
#define TRACE_LEVEL_ERROR
_In_ ULONG _In_ ULONG Offset
__success(TRUE) __drv_maxIRQL(DISPATCH_LEVEL) NTSTATUS WDFEXPORT(WdfDmaTransactionRelease)(__in PWDF_DRIVER_GLOBALS DriverGlobals
_Must_inspect_result_ __in WDFDMATRANSACTION DmaTransaction
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in FxDmaEnabler *DmaEnabler, __out WDFDMATRANSACTION *Transaction)
__in WDFDMATRANSACTION __in BOOLEAN UseImmediateExecution
__inline PFX_DRIVER_GLOBALS GetDriverGlobals(VOID)
_Must_inspect_result_ NTSTATUS Execute(__in PVOID Context)
EVT_WDF_PROGRAM_DMA * PFN_WDF_PROGRAM_DMA
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL _In_opt_ PVOID ConfigureContext
FxDmaTransactionState GetTransactionState(VOID)
DoTraceLevelMessage(pFxDriverGlobals, TRACE_LEVEL_VERBOSE, TRACINGPNP, "Enter, WDFDEVICE %p", Device)
#define MmGetMdlByteCount(_Mdl)
__in WDFDMATRANSACTION __in size_t FinalTransferredLength
_Must_inspect_result_ __in WDFDMATRANSACTION __in WDFREQUEST __in PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction
VOID GetTransferInfo(__out_opt ULONG *MapRegisterCount, __out_opt ULONG *ScatterGatherElementCount)
FxObjectHandleGetPtr(pFxDriverGlobals, Request, FX_TYPE_REQUEST,(PVOID *) &pReqObj)
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
FxDmaEnabler * pDmaEnabler
__in WDFDMATRANSACTION __in_opt PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL ConfigureRoutine
_Must_inspect_result_ __in WDFDMAENABLER __in_opt WDF_OBJECT_ATTRIBUTES * Attributes
_Must_inspect_result_ _In_ WDFDMAENABLER DmaEnabler
FxDmaSystemTransaction * systemTransaction
enum _WDF_DMA_DIRECTION WDF_DMA_DIRECTION
VOID SetConfigureChannelCallback(__in_opt PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL Callback, __in_opt PVOID Context)
FxDmaTransactionBase * pDmaTrans
__inline PFX_DRIVER_GLOBALS GetFxDriverGlobals(__in PWDF_DRIVER_GLOBALS DriverGlobals)
_In_ WDFDMATRANSACTION _In_ WDF_DMA_DIRECTION _In_ ULONG _In_ PFN_WDF_RESERVE_DMA EvtReserveDmaFunction
static _Must_inspect_result_ NTSTATUS _Create(__in PFX_DRIVER_GLOBALS FxDriverGlobals, __in PWDF_OBJECT_ATTRIBUTES Attributes, __in FxDmaEnabler *DmaEnabler, __out WDFDMATRANSACTION *Transaction)
__in WDFDMATRANSACTION __in WDF_DMA_DIRECTION __in ULONG __in PFN_WDF_RESERVE_DMA EvtReserveDmaFunction
PFX_DRIVER_GLOBALS pFxDriverGlobals
_In_ WDFDMATRANSACTION _In_ BOOLEAN UseImmediateExecution
#define WDF_PTR_GET_OFFSET(_base, _addr)
_Must_inspect_result_ _In_ WDFDMAENABLER _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDMATRANSACTION * DmaTransaction
__inline WDFREQUEST GetHandle(VOID)
__in WDFDMATRANSACTION __in WDF_DMA_DIRECTION __in ULONG RequiredMapRegisters
_Must_inspect_result_ __in WDFDMAENABLER DmaEnabler
FxVerifierDbgBreakPoint(pFxDriverGlobals)
#define IRP_MJ_DEVICE_CONTROL
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_Must_inspect_result_ __in WDFDMATRANSACTION __in PFN_WDF_PROGRAM_DMA __in WDF_DMA_DIRECTION __in PMDL __in size_t Offset
_In_ WDFDMATRANSACTION _Out_opt_ ULONG _Out_opt_ ULONG * ScatterGatherElementCount