reactos/sdk/include/wdf/kmdf/1.17/wdfdmatransaction.h

895 lines
20 KiB
C
Raw Normal View History

/*++
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_