31 #ifndef _WDFDMATRANSACTION_H_ 32 #define _WDFDMATRANSACTION_H_ 36 #define WDF_EXTERN_C extern "C" 37 #define WDF_EXTERN_C_START extern "C" { 38 #define WDF_EXTERN_C_END } 41 #define WDF_EXTERN_C_START 42 #define WDF_EXTERN_C_END 50 #if (NTDDI_VERSION >= NTDDI_WIN2K) 81 EVT_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL(
104 EVT_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE(
142 (
STDCALL *PFN_WDFDMATRANSACTIONCREATE)(
157 WdfDmaTransactionCreate(
177 (
STDCALL *PFN_WDFDMATRANSACTIONINITIALIZE)(
199 WdfDmaTransactionInitialize(
226 (
STDCALL *PFN_WDFDMATRANSACTIONINITIALIZEUSINGOFFSET)(
248 WdfDmaTransactionInitializeUsingOffset(
275 (
STDCALL *PFN_WDFDMATRANSACTIONINITIALIZEUSINGREQUEST)(
292 WdfDmaTransactionInitializeUsingRequest(
314 (
STDCALL *PFN_WDFDMATRANSACTIONEXECUTE)(
327 WdfDmaTransactionExecute(
345 (
STDCALL *PFN_WDFDMATRANSACTIONRELEASE)(
356 WdfDmaTransactionRelease(
371 (
STDCALL *PFN_WDFDMATRANSACTIONDMACOMPLETED)(
383 WdfDmaTransactionDmaCompleted(
400 (
STDCALL *PFN_WDFDMATRANSACTIONDMACOMPLETEDWITHLENGTH)(
414 WdfDmaTransactionDmaCompletedWithLength(
433 (
STDCALL *PFN_WDFDMATRANSACTIONDMACOMPLETEDFINAL)(
447 WdfDmaTransactionDmaCompletedFinal(
466 (
STDCALL *PFN_WDFDMATRANSACTIONGETBYTESTRANSFERRED)(
476 WdfDmaTransactionGetBytesTransferred(
491 (
STDCALL *PFN_WDFDMATRANSACTIONSETMAXIMUMLENGTH)(
503 WdfDmaTransactionSetMaximumLength(
520 (
STDCALL *PFN_WDFDMATRANSACTIONGETREQUEST)(
530 WdfDmaTransactionGetRequest(
545 (
STDCALL *PFN_WDFDMATRANSACTIONGETCURRENTDMATRANSFERLENGTH)(
555 WdfDmaTransactionGetCurrentDmaTransferLength(
570 (
STDCALL *PFN_WDFDMATRANSACTIONGETDEVICE)(
580 WdfDmaTransactionGetDevice(
595 (
STDCALL *PFN_WDFDMATRANSACTIONGETTRANSFERINFO)(
609 WdfDmaTransactionGetTransferInfo(
628 (
STDCALL *PFN_WDFDMATRANSACTIONSETCHANNELCONFIGURATIONCALLBACK)(
642 WdfDmaTransactionSetChannelConfigurationCallback(
661 (
STDCALL *PFN_WDFDMATRANSACTIONSETTRANSFERCOMPLETECALLBACK)(
675 WdfDmaTransactionSetTransferCompleteCallback(
694 (
STDCALL *PFN_WDFDMATRANSACTIONSETIMMEDIATEEXECUTION)(
706 WdfDmaTransactionSetImmediateExecution(
723 (
STDCALL *PFN_WDFDMATRANSACTIONALLOCATERESOURCES)(
741 WdfDmaTransactionAllocateResources(
764 (
STDCALL *PFN_WDFDMATRANSACTIONSETDEVICEADDRESSOFFSET)(
776 WdfDmaTransactionSetDeviceAddressOffset(
793 (
STDCALL *PFN_WDFDMATRANSACTIONFREERESOURCES)(
803 WdfDmaTransactionFreeResources(
818 (
STDCALL *PFN_WDFDMATRANSACTIONCANCEL)(
828 WdfDmaTransactionCancel(
843 (
STDCALL *PFN_WDFDMATRANSACTIONWDMGETTRANSFERCONTEXT)(
853 WdfDmaTransactionWdmGetTransferContext(
868 (
STDCALL *PFN_WDFDMATRANSACTIONSTOPSYSTEMTRANSFER)(
878 WdfDmaTransactionStopSystemTransfer(
888 #endif // (NTDDI_VERSION >= NTDDI_WIN2K) 893 #endif // _WDFDMATRANSACTION_H_
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT Context
_In_ WDFDMATRANSACTION _In_ size_t FinalTransferredLength
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define __drv_reportError(why)
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 _In_opt_ PVOID DmaCompletionContext
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION Direction
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL ConfigureRoutine
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ WDFREQUEST Request
_In_ WDFDMATRANSACTION _Out_opt_ ULONG * MapRegisterCount
_Must_inspect_result_ _In_ WDFDMAENABLER _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_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 _In_ _When_(Length==0, __drv_reportError(Length cannot be zero)) size_t Length)
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction
_Must_inspect_result_ _In_ WDFDMAENABLER DmaEnabler
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION DmaDirection
EVT_WDF_RESERVE_DMA * PFN_WDF_RESERVE_DMA
EVT_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL * PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL
#define _IRQL_requires_same_
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL _In_ size_t Offset
_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
#define _IRQL_requires_(irql)
PWDF_DRIVER_GLOBALS WdfDriverGlobals
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine
_In_ WDFDMATRANSACTION _In_ size_t MaximumLength
_In_ WDFDMATRANSACTION _In_ size_t TransferredLength
_In_ WDFDMATRANSACTION _In_ WDF_DMA_DIRECTION _In_ ULONG RequiredMapRegisters
_In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION _In_ DMA_COMPLETION_STATUS Status
WDF_EXTERN_C_START typedef _In_ WDFDEVICE _In_ WDFCONTEXT _In_ WDF_DMA_DIRECTION _In_ PSCATTER_GATHER_LIST SgList
#define _Must_inspect_result_
_Must_inspect_result_ _In_ WDFDEVICE Device
_In_ ULONG _In_ ULONG Offset
#define WDF_EXTERN_C_START
EVT_WDF_PROGRAM_DMA * PFN_WDF_PROGRAM_DMA
_In_ WDFDMATRANSACTION _In_opt_ PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL _In_opt_ PVOID ConfigureContext
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL _In_ size_t _In_ size_t Length
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
_Must_inspect_result_ _In_ WDFDMAENABLER DmaEnabler
struct _SCATTER_GATHER_LIST * PSCATTER_GATHER_LIST
enum _WDF_DMA_DIRECTION WDF_DMA_DIRECTION
WDF_EXTERN_C_START typedef _Function_class_(EVT_WDF_PROGRAM_DMA) _IRQL_requires_same_ _IRQL_requires_(DISPATCH_LEVEL) BOOLEAN STDCALL EVT_WDF_PROGRAM_DMA(_In_ WDFDMATRANSACTION Transaction
_Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFDMATRANSACTIONCREATE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
_In_ WDFDMATRANSACTION _In_ WDF_DMA_DIRECTION _In_ ULONG _In_ PFN_WDF_RESERVE_DMA EvtReserveDmaFunction
typedef _Success_(TRUE) _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS(STDCALL *PFN_WDFDMATRANSACTIONRELEASE)(_In_ PWDF_DRIVER_GLOBALS DriverGlobals
_In_ WDFDMATRANSACTION _In_ BOOLEAN UseImmediateExecution
_Must_inspect_result_ _In_ WDFDMAENABLER _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDMATRANSACTION * DmaTransaction
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_In_ WDFDMATRANSACTION _Out_opt_ ULONG _Out_opt_ ULONG * ScatterGatherElementCount