struct _DMA_OPERATIONS { unsigned long Size;/* 0x0 4 */ void (*PutDmaAdapter)(struct _DMA_ADAPTER*);/* 0x4 4 */ void* (*AllocateCommonBuffer)(struct _DMA_ADAPTER*, unsigned long, union _LARGE_INTEGER*, unsigned char);/* 0x8 4 */ void (*FreeCommonBuffer)(struct _DMA_ADAPTER*, unsigned long, union _LARGE_INTEGER, void*, unsigned char);/* 0xc 4 */ long (*AllocateAdapterChannel)(struct _DMA_ADAPTER*, struct _DEVICE_OBJECT*, unsigned long, int (*)(struct _DEVICE_OBJECT*, struct _IRP*, void*, void*), void*);/* 0x10 4 */ unsigned char (*FlushAdapterBuffers)(struct _DMA_ADAPTER*, struct _MDL*, void*, void*, unsigned long, unsigned char);/* 0x14 4 */ void (*FreeAdapterChannel)(struct _DMA_ADAPTER*);/* 0x18 4 */ void (*FreeMapRegisters)(struct _DMA_ADAPTER*, void*, unsigned long);/* 0x1c 4 */ union _LARGE_INTEGER (*MapTransfer)(struct _DMA_ADAPTER*, struct _MDL*, void*, void*, unsigned long*, unsigned char);/* 0x20 4 */ unsigned long (*GetDmaAlignment)(struct _DMA_ADAPTER*);/* 0x24 4 */ unsigned long (*ReadDmaCounter)(struct _DMA_ADAPTER*);/* 0x28 4 */ long (*GetScatterGatherList)(struct _DMA_ADAPTER*, struct _DEVICE_OBJECT*, struct _MDL*, void*, unsigned long, void (*)(struct _DEVICE_OBJECT*, struct _IRP*, struct _SCATTER_GATHER_LIST*, void*), void*, unsigned char);/* 0x2c 4 */ void (*PutScatterGatherList)(struct _DMA_ADAPTER*, struct _SCATTER_GATHER_LIST*, unsigned char);/* 0x30 4 */};size 52 (0x34)13 members0 holespadding 01 cacheline
Used in (1)