struct _DMA_FUNCTION_TABLE
{
VOID (*InitializeController)(
VOID* arg1);
UCHAR (*ValidateRequestLineBinding)(
VOID* arg1,
struct _DMA_REQUEST_LINE_BINDING_DESCRIPTION* arg2);
ULONG (*QueryMaxFragments)(
VOID* arg1,
ULONG arg2,
ULONG arg3);
VOID (*ProgramChannel)(
VOID* arg1,
ULONG arg2,
ULONG arg3,
struct _DMA_SCATTER_GATHER_LIST* arg4,
union _LARGE_INTEGER arg5,
UCHAR arg6,
UCHAR arg7);
LONG (*ConfigureChannel)(
VOID* arg1,
ULONG arg2,
ULONG arg3,
VOID* arg4);
VOID (*FlushChannel)(
VOID* arg1,
ULONG arg2);
UCHAR (*HandleInterrupt)(
VOID* arg1,
ULONG* arg2,
enum _DMA_INTERRUPT_TYPE* arg3);
ULONG (*ReadDmaCounter)(
VOID* arg1,
ULONG arg2);
VOID (*ReportCommonBuffer)(
VOID* arg1,
ULONG arg2,
VOID* arg3,
union _LARGE_INTEGER arg4);
UCHAR (*CancelTransfer)(
VOID* arg1,
ULONG arg2);
};