/*++ 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 STDCALL 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 STDCALL 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 STDCALL 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 STDCALL 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 (STDCALL *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) FORCEINLINE NTSTATUS 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 (STDCALL *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) FORCEINLINE NTSTATUS 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 (STDCALL *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) FORCEINLINE NTSTATUS 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 (STDCALL *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) FORCEINLINE NTSTATUS 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 (STDCALL *PFN_WDFDMATRANSACTIONEXECUTE)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_opt_ WDFCONTEXT Context ); _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE NTSTATUS 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 (STDCALL *PFN_WDFDMATRANSACTIONRELEASE)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _Success_(TRUE) _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE NTSTATUS WdfDmaTransactionRelease( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONRELEASE) WdfFunctions[WdfDmaTransactionReleaseTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionDmaCompleted // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BOOLEAN (STDCALL *PFN_WDFDMATRANSACTIONDMACOMPLETED)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _Out_ NTSTATUS* Status ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE BOOLEAN 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 (STDCALL *PFN_WDFDMATRANSACTIONDMACOMPLETEDWITHLENGTH)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ size_t TransferredLength, _Out_ NTSTATUS* Status ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE BOOLEAN 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 (STDCALL *PFN_WDFDMATRANSACTIONDMACOMPLETEDFINAL)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ size_t FinalTransferredLength, _Out_ NTSTATUS* Status ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE BOOLEAN 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 (STDCALL *PFN_WDFDMATRANSACTIONGETBYTESTRANSFERRED)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE size_t WdfDmaTransactionGetBytesTransferred( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONGETBYTESTRANSFERRED) WdfFunctions[WdfDmaTransactionGetBytesTransferredTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionSetMaximumLength // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID (STDCALL *PFN_WDFDMATRANSACTIONSETMAXIMUMLENGTH)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ size_t MaximumLength ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE VOID 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 (STDCALL *PFN_WDFDMATRANSACTIONGETREQUEST)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE WDFREQUEST WdfDmaTransactionGetRequest( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONGETREQUEST) WdfFunctions[WdfDmaTransactionGetRequestTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionGetCurrentDmaTransferLength // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI size_t (STDCALL *PFN_WDFDMATRANSACTIONGETCURRENTDMATRANSFERLENGTH)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE size_t WdfDmaTransactionGetCurrentDmaTransferLength( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONGETCURRENTDMATRANSFERLENGTH) WdfFunctions[WdfDmaTransactionGetCurrentDmaTransferLengthTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionGetDevice // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI WDFDEVICE (STDCALL *PFN_WDFDMATRANSACTIONGETDEVICE)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE WDFDEVICE WdfDmaTransactionGetDevice( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONGETDEVICE) WdfFunctions[WdfDmaTransactionGetDeviceTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionGetTransferInfo // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID (STDCALL *PFN_WDFDMATRANSACTIONGETTRANSFERINFO)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _Out_opt_ ULONG* MapRegisterCount, _Out_opt_ ULONG* ScatterGatherElementCount ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE VOID 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 (STDCALL *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) FORCEINLINE VOID 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 (STDCALL *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) FORCEINLINE VOID 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 (STDCALL *PFN_WDFDMATRANSACTIONSETIMMEDIATEEXECUTION)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ BOOLEAN UseImmediateExecution ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE VOID 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 (STDCALL *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) FORCEINLINE NTSTATUS 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 (STDCALL *PFN_WDFDMATRANSACTIONSETDEVICEADDRESSOFFSET)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction, _In_ ULONG Offset ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE VOID 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 (STDCALL *PFN_WDFDMATRANSACTIONFREERESOURCES)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE VOID WdfDmaTransactionFreeResources( _In_ WDFDMATRANSACTION DmaTransaction ) { ((PFN_WDFDMATRANSACTIONFREERESOURCES) WdfFunctions[WdfDmaTransactionFreeResourcesTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionCancel // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI BOOLEAN (STDCALL *PFN_WDFDMATRANSACTIONCANCEL)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE BOOLEAN WdfDmaTransactionCancel( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONCANCEL) WdfFunctions[WdfDmaTransactionCancelTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionWdmGetTransferContext // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI PVOID (STDCALL *PFN_WDFDMATRANSACTIONWDMGETTRANSFERCONTEXT)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE PVOID WdfDmaTransactionWdmGetTransferContext( _In_ WDFDMATRANSACTION DmaTransaction ) { return ((PFN_WDFDMATRANSACTIONWDMGETTRANSFERCONTEXT) WdfFunctions[WdfDmaTransactionWdmGetTransferContextTableIndex])(WdfDriverGlobals, DmaTransaction); } // // WDF Function: WdfDmaTransactionStopSystemTransfer // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI VOID (STDCALL *PFN_WDFDMATRANSACTIONSTOPSYSTEMTRANSFER)( _In_ PWDF_DRIVER_GLOBALS DriverGlobals, _In_ WDFDMATRANSACTION DmaTransaction ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE VOID WdfDmaTransactionStopSystemTransfer( _In_ WDFDMATRANSACTION DmaTransaction ) { ((PFN_WDFDMATRANSACTIONSTOPSYSTEMTRANSFER) WdfFunctions[WdfDmaTransactionStopSystemTransferTableIndex])(WdfDriverGlobals, DmaTransaction); } #endif // (NTDDI_VERSION >= NTDDI_WIN2K) WDF_EXTERN_C_END #endif // _WDFDMATRANSACTION_H_