//0x50 bytes (sizeof)
struct _DMA_FUNCTION_TABLE
{
VOID (*InitializeController)(VOID* arg1); //0x0
UCHAR (*ValidateRequestLineBinding)(VOID* arg1, struct
_DMA_REQUEST_LINE_BINDING_DESCRIPTION* arg2); //0x8
ULONG (*QueryMaxFragments)(VOID* arg1, ULONG arg2, ULONG arg3); //0x10
VOID (*ProgramChannel)(VOID* arg1, ULONG arg2, ULONG arg3, struct
_DMA_SCATTER_GATHER_LIST* arg4, union
_LARGE_INTEGER arg5, UCHAR arg6, UCHAR arg7); //0x18
LONG (*ConfigureChannel)(VOID* arg1, ULONG arg2, ULONG arg3, VOID* arg4); //0x20
VOID (*FlushChannel)(VOID* arg1, ULONG arg2); //0x28
UCHAR (*HandleInterrupt)(VOID* arg1, ULONG* arg2, enum
_DMA_INTERRUPT_TYPE* arg3); //0x30
ULONG (*ReadDmaCounter)(VOID* arg1, ULONG arg2); //0x38
VOID (*ReportCommonBuffer)(VOID* arg1, ULONG arg2, VOID* arg3, union
_LARGE_INTEGER arg4); //0x40
UCHAR (*CancelTransfer)(VOID* arg1, ULONG arg2); //0x48
};