/*++ Copyright (c) Microsoft Corporation. All rights reserved. _WdfVersionBuild_ Module Name: WdfDmaTransaction.h Abstract: WDF DMA Transaction support Environment: Kernel mode only. Notes: Revision History: --*/ // // NOTE: This header is generated by stubwork. Please make any // modifications to the corresponding template files // (.x or .y) and use stubwork to regenerate the header // #ifndef _WDFDMATRANSACTION_H_ #define _WDFDMATRANSACTION_H_ #ifndef WDF_EXTERN_C #ifdef __cplusplus #define WDF_EXTERN_C extern "C" #define WDF_EXTERN_C_START extern "C" { #define WDF_EXTERN_C_END } #else #define WDF_EXTERN_C #define WDF_EXTERN_C_START #define WDF_EXTERN_C_END #endif #endif WDF_EXTERN_C_START #if (NTDDI_VERSION >= NTDDI_WIN2K) typedef _Function_class_(EVT_WDF_PROGRAM_DMA) _IRQL_requires_same_ _IRQL_requires_(DISPATCH_LEVEL) BOOLEAN EVT_WDF_PROGRAM_DMA( _In_ WDFDMATRANSACTION Transaction, _In_ WDFDEVICE Device, _In_ WDFCONTEXT Context, _In_ WDF_DMA_DIRECTION Direction, _In_ PSCATTER_GATHER_LIST SgList ); typedef EVT_WDF_PROGRAM_DMA *PFN_WDF_PROGRAM_DMA; typedef _Function_class_(EVT_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL) _IRQL_requires_same_ _IRQL_requires_(DISPATCH_LEVEL) BOOLEAN EVT_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL( _In_ WDFDMATRANSACTION DmaTransaction, _In_ WDFDEVICE Device, _In_ PVOID Context, _In_opt_ PMDL Mdl, _In_ size_t Offset, _In_ size_t Length ); typedef EVT_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL *PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL; typedef _Function_class_(EVT_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE) _IRQL_requires_same_ _IRQL_requires_(DISPATCH_LEVEL) VOID EVT_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE( _In_ WDFDMATRANSACTION Transaction, _In_ WDFDEVICE Device, _In_ WDFCONTEXT Context, _In_ WDF_DMA_DIRECTION Direction, _In_ DMA_COMPLETION_STATUS Status ); typedef EVT_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE *PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE; typedef _Function_class_(EVT_WDF_RESERVE_DMA) _IRQL_requires_same_ _IRQL_requires_(DISPATCH_LEVEL) VOID EVT_WDF_RESERVE_DMA( _In_ WDFDMATRANSACTION DmaTransaction, _In_ PVOID Context ); typedef EVT_WDF_RESERVE_DMA *PFN_WDF_RESERVE_DMA; // // WDF Function: WdfDmaTransactionCreate // typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS (*PFN_WDFDMATRANSACTIONCREATE)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMAENABLER DmaEnabler, _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes, _Out_ WDFDMATRANSACTION* DmaTransaction ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS FORCEINLINE WdfDmaTransactionCreate( _In_ WDFDMAENABLER DmaEnabler, _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes, _Out_ WDFDMATRANSACTION* DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONCREATE) WdfFunctions[WdfDmaTransactionCreateTableIndex])(WdfDriverGlobals, DmaEnabler, Attributes, DmaTransaction); } // // WDF Function: WdfDmaTransactionInitialize // typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS (*PFN_WDFDMATRANSACTIONINITIALIZE)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction, _In_ WDF_DMA_DIRECTION DmaDirection, _In_ PMDL Mdl, _In_ PVOID VirtualAddress, _In_ _When_(Length == 0, __drv_reportError(Length cannot be zero)) size_t Length ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS FORCEINLINE WdfDmaTransactionInitialize( _In_ WDFDMATRANSACTION DmaTransaction, _In_ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction, _In_ WDF_DMA_DIRECTION DmaDirection, _In_ PMDL Mdl, _In_ PVOID VirtualAddress, _In_ _When_(Length == 0, __drv_reportError(Length cannot be zero)) size_t Length ) { return ((PFN_WDFDMATRANSACTIONINITIALIZE) WdfFunctions[WdfDmaTransactionInitializeTableIndex])(WdfDriverGlobals, DmaTransaction, EvtProgramDmaFunction, DmaDirection, Mdl, VirtualAddress, Length); } // // WDF Function: WdfDmaTransactionInitializeUsingOffset // typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS (*PFN_WDFDMATRANSACTIONINITIALIZEUSINGOFFSET)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction, _In_ WDF_DMA_DIRECTION DmaDirection, _In_ PMDL Mdl, _In_ size_t Offset, _In_ _When_(Length == 0, __drv_reportError(Length cannot be zero)) size_t Length ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS FORCEINLINE WdfDmaTransactionInitializeUsingOffset( _In_ WDFDMATRANSACTION DmaTransaction, _In_ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction, _In_ WDF_DMA_DIRECTION DmaDirection, _In_ PMDL Mdl, _In_ size_t Offset, _In_ _When_(Length == 0, __drv_reportError(Length cannot be zero)) size_t Length ) { return ((PFN_WDFDMATRANSACTIONINITIALIZEUSINGOFFSET) WdfFunctions[WdfDmaTransactionInitializeUsingOffsetTableIndex])(WdfDriverGlobals, DmaTransaction, EvtProgramDmaFunction, DmaDirection, Mdl, Offset, Length); } // // WDF Function: WdfDmaTransactionInitializeUsingRequest // typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS (*PFN_WDFDMATRANSACTIONINITIALIZEUSINGREQUEST)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ WDFREQUEST Request, _In_ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction, _In_ WDF_DMA_DIRECTION DmaDirection ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS FORCEINLINE WdfDmaTransactionInitializeUsingRequest( _In_ WDFDMATRANSACTION DmaTransaction, _In_ WDFREQUEST Request, _In_ PFN_WDF_PROGRAM_DMA EvtProgramDmaFunction, _In_ WDF_DMA_DIRECTION DmaDirection ) { return ((PFN_WDFDMATRANSACTIONINITIALIZEUSINGREQUEST) WdfFunctions[WdfDmaTransactionInitializeUsingRequestTableIndex])(WdfDriverGlobals, DmaTransaction, Request, EvtProgramDmaFunction, DmaDirection); } // // WDF Function: WdfDmaTransactionExecute // typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS (*PFN_WDFDMATRANSACTIONEXECUTE)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_opt_ WDFCONTEXT Context ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS FORCEINLINE WdfDmaTransactionExecute( _In_ WDFDMATRANSACTION DmaTransaction, _In_opt_ WDFCONTEXT Context ) { return ((PFN_WDFDMATRANSACTIONEXECUTE) WdfFunctions[WdfDmaTransactionExecuteTableIndex])(WdfDriverGlobals, DmaTransaction, Context); } // // WDF Function: WdfDmaTransactionRelease // typedef _Success_(TRUE) _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS (*PFN_WDFDMATRANSACTIONRELEASE)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _Success_(TRUE) _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS FORCEINLINE WdfDmaTransactionRelease( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONRELEASE) WdfFunctions[WdfDmaTransactionReleaseTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionDmaCompleted // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BOOLEAN (*PFN_WDFDMATRANSACTIONDMACOMPLETED)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _Out_ NTSTATUS* Status ); _IRQL_requires_max_(DISPATCH_LEVEL) BOOLEAN FORCEINLINE WdfDmaTransactionDmaCompleted( _In_ WDFDMATRANSACTION DmaTransaction, _Out_ NTSTATUS* Status ) { return ((PFN_WDFDMATRANSACTIONDMACOMPLETED) WdfFunctions[WdfDmaTransactionDmaCompletedTableIndex])(WdfDriverGlobals, DmaTransaction, Status); } // // WDF Function: WdfDmaTransactionDmaCompletedWithLength // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BOOLEAN (*PFN_WDFDMATRANSACTIONDMACOMPLETEDWITHLENGTH)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ size_t TransferredLength, _Out_ NTSTATUS* Status ); _IRQL_requires_max_(DISPATCH_LEVEL) BOOLEAN FORCEINLINE WdfDmaTransactionDmaCompletedWithLength( _In_ WDFDMATRANSACTION DmaTransaction, _In_ size_t TransferredLength, _Out_ NTSTATUS* Status ) { return ((PFN_WDFDMATRANSACTIONDMACOMPLETEDWITHLENGTH) WdfFunctions[WdfDmaTransactionDmaCompletedWithLengthTableIndex])(WdfDriverGlobals, DmaTransaction, TransferredLength, Status); } // // WDF Function: WdfDmaTransactionDmaCompletedFinal // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BOOLEAN (*PFN_WDFDMATRANSACTIONDMACOMPLETEDFINAL)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ size_t FinalTransferredLength, _Out_ NTSTATUS* Status ); _IRQL_requires_max_(DISPATCH_LEVEL) BOOLEAN FORCEINLINE WdfDmaTransactionDmaCompletedFinal( _In_ WDFDMATRANSACTION DmaTransaction, _In_ size_t FinalTransferredLength, _Out_ NTSTATUS* Status ) { return ((PFN_WDFDMATRANSACTIONDMACOMPLETEDFINAL) WdfFunctions[WdfDmaTransactionDmaCompletedFinalTableIndex])(WdfDriverGlobals, DmaTransaction, FinalTransferredLength, Status); } // // WDF Function: WdfDmaTransactionGetBytesTransferred // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI size_t (*PFN_WDFDMATRANSACTIONGETBYTESTRANSFERRED)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) size_t FORCEINLINE WdfDmaTransactionGetBytesTransferred( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONGETBYTESTRANSFERRED) WdfFunctions[WdfDmaTransactionGetBytesTransferredTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionSetMaximumLength // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID (*PFN_WDFDMATRANSACTIONSETMAXIMUMLENGTH)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ size_t MaximumLength ); _IRQL_requires_max_(DISPATCH_LEVEL) VOID FORCEINLINE WdfDmaTransactionSetMaximumLength( _In_ WDFDMATRANSACTION DmaTransaction, _In_ size_t MaximumLength ) { ((PFN_WDFDMATRANSACTIONSETMAXIMUMLENGTH) WdfFunctions[WdfDmaTransactionSetMaximumLengthTableIndex])(WdfDriverGlobals, DmaTransaction, MaximumLength); } // // WDF Function: WdfDmaTransactionGetRequest // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFREQUEST (*PFN_WDFDMATRANSACTIONGETREQUEST)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFREQUEST FORCEINLINE WdfDmaTransactionGetRequest( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONGETREQUEST) WdfFunctions[WdfDmaTransactionGetRequestTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionGetCurrentDmaTransferLength // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI size_t (*PFN_WDFDMATRANSACTIONGETCURRENTDMATRANSFERLENGTH)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) size_t FORCEINLINE WdfDmaTransactionGetCurrentDmaTransferLength( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONGETCURRENTDMATRANSFERLENGTH) WdfFunctions[WdfDmaTransactionGetCurrentDmaTransferLengthTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionGetDevice // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFDEVICE (*PFN_WDFDMATRANSACTIONGETDEVICE)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) WDFDEVICE FORCEINLINE WdfDmaTransactionGetDevice( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONGETDEVICE) WdfFunctions[WdfDmaTransactionGetDeviceTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionGetTransferInfo // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID (*PFN_WDFDMATRANSACTIONGETTRANSFERINFO)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _Out_opt_ ULONG* MapRegisterCount, _Out_opt_ ULONG* ScatterGatherElementCount ); _IRQL_requires_max_(DISPATCH_LEVEL) VOID FORCEINLINE WdfDmaTransactionGetTransferInfo( _In_ WDFDMATRANSACTION DmaTransaction, _Out_opt_ ULONG* MapRegisterCount, _Out_opt_ ULONG* ScatterGatherElementCount ) { ((PFN_WDFDMATRANSACTIONGETTRANSFERINFO) WdfFunctions[WdfDmaTransactionGetTransferInfoTableIndex])(WdfDriverGlobals, DmaTransaction, MapRegisterCount, ScatterGatherElementCount); } // // WDF Function: WdfDmaTransactionSetChannelConfigurationCallback // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID (*PFN_WDFDMATRANSACTIONSETCHANNELCONFIGURATIONCALLBACK)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_opt_ PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL ConfigureRoutine, _In_opt_ PVOID ConfigureContext ); _IRQL_requires_max_(DISPATCH_LEVEL) VOID FORCEINLINE WdfDmaTransactionSetChannelConfigurationCallback( _In_ WDFDMATRANSACTION DmaTransaction, _In_opt_ PFN_WDF_DMA_TRANSACTION_CONFIGURE_DMA_CHANNEL ConfigureRoutine, _In_opt_ PVOID ConfigureContext ) { ((PFN_WDFDMATRANSACTIONSETCHANNELCONFIGURATIONCALLBACK) WdfFunctions[WdfDmaTransactionSetChannelConfigurationCallbackTableIndex])(WdfDriverGlobals, DmaTransaction, ConfigureRoutine, ConfigureContext); } // // WDF Function: WdfDmaTransactionSetTransferCompleteCallback // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID (*PFN_WDFDMATRANSACTIONSETTRANSFERCOMPLETECALLBACK)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_opt_ PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine, _In_opt_ PVOID DmaCompletionContext ); _IRQL_requires_max_(DISPATCH_LEVEL) VOID FORCEINLINE WdfDmaTransactionSetTransferCompleteCallback( _In_ WDFDMATRANSACTION DmaTransaction, _In_opt_ PFN_WDF_DMA_TRANSACTION_DMA_TRANSFER_COMPLETE DmaCompletionRoutine, _In_opt_ PVOID DmaCompletionContext ) { ((PFN_WDFDMATRANSACTIONSETTRANSFERCOMPLETECALLBACK) WdfFunctions[WdfDmaTransactionSetTransferCompleteCallbackTableIndex])(WdfDriverGlobals, DmaTransaction, DmaCompletionRoutine, DmaCompletionContext); } // // WDF Function: WdfDmaTransactionSetImmediateExecution // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID (*PFN_WDFDMATRANSACTIONSETIMMEDIATEEXECUTION)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ BOOLEAN UseImmediateExecution ); _IRQL_requires_max_(DISPATCH_LEVEL) VOID FORCEINLINE WdfDmaTransactionSetImmediateExecution( _In_ WDFDMATRANSACTION DmaTransaction, _In_ BOOLEAN UseImmediateExecution ) { ((PFN_WDFDMATRANSACTIONSETIMMEDIATEEXECUTION) WdfFunctions[WdfDmaTransactionSetImmediateExecutionTableIndex])(WdfDriverGlobals, DmaTransaction, UseImmediateExecution); } // // WDF Function: WdfDmaTransactionAllocateResources // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI NTSTATUS (*PFN_WDFDMATRANSACTIONALLOCATERESOURCES)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ WDF_DMA_DIRECTION DmaDirection, _In_ ULONG RequiredMapRegisters, _In_ PFN_WDF_RESERVE_DMA EvtReserveDmaFunction, _In_ PVOID EvtReserveDmaContext ); _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS FORCEINLINE WdfDmaTransactionAllocateResources( _In_ WDFDMATRANSACTION DmaTransaction, _In_ WDF_DMA_DIRECTION DmaDirection, _In_ ULONG RequiredMapRegisters, _In_ PFN_WDF_RESERVE_DMA EvtReserveDmaFunction, _In_ PVOID EvtReserveDmaContext ) { return ((PFN_WDFDMATRANSACTIONALLOCATERESOURCES) WdfFunctions[WdfDmaTransactionAllocateResourcesTableIndex])(WdfDriverGlobals, DmaTransaction, DmaDirection, RequiredMapRegisters, EvtReserveDmaFunction, EvtReserveDmaContext); } // // WDF Function: WdfDmaTransactionSetDeviceAddressOffset // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID (*PFN_WDFDMATRANSACTIONSETDEVICEADDRESSOFFSET)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ ULONG Offset ); _IRQL_requires_max_(DISPATCH_LEVEL) VOID FORCEINLINE WdfDmaTransactionSetDeviceAddressOffset( _In_ WDFDMATRANSACTION DmaTransaction, _In_ ULONG Offset ) { ((PFN_WDFDMATRANSACTIONSETDEVICEADDRESSOFFSET) WdfFunctions[WdfDmaTransactionSetDeviceAddressOffsetTableIndex])(WdfDriverGlobals, DmaTransaction, Offset); } // // WDF Function: WdfDmaTransactionFreeResources // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID (*PFN_WDFDMATRANSACTIONFREERESOURCES)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) VOID FORCEINLINE WdfDmaTransactionFreeResources( _In_ WDFDMATRANSACTION DmaTransaction ) { ((PFN_WDFDMATRANSACTIONFREERESOURCES) WdfFunctions[WdfDmaTransactionFreeResourcesTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionCancel // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BOOLEAN (*PFN_WDFDMATRANSACTIONCANCEL)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) BOOLEAN FORCEINLINE WdfDmaTransactionCancel( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONCANCEL) WdfFunctions[WdfDmaTransactionCancelTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionWdmGetTransferContext // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI PVOID (*PFN_WDFDMATRANSACTIONWDMGETTRANSFERCONTEXT)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) PVOID FORCEINLINE WdfDmaTransactionWdmGetTransferContext( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONWDMGETTRANSFERCONTEXT) WdfFunctions[WdfDmaTransactionWdmGetTransferContextTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionStopSystemTransfer // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID (*PFN_WDFDMATRANSACTIONSTOPSYSTEMTRANSFER)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) VOID FORCEINLINE WdfDmaTransactionStopSystemTransfer( _In_ WDFDMATRANSACTION DmaTransaction ) { ((PFN_WDFDMATRANSACTIONSTOPSYSTEMTRANSFER) WdfFunctions[WdfDmaTransactionStopSystemTransferTableIndex])(WdfDriverGlobals, DmaTransaction); } #endif // (NTDDI_VERSION >= NTDDI_WIN2K) WDF_EXTERN_C_END #endif // _WDFDMATRANSACTION_H_