//0x48 bytes (sizeof)
struct _WAIT_CONTEXT_BLOCK
{
    union
    {
        struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry;                         //0x0
        struct
        {
            struct _LIST_ENTRY DmaWaitEntry;                                //0x0
            ULONG NumberOfChannels;                                         //0x10
            ULONG SyncCallback:1;                                           //0x14
            ULONG DmaContext:1;                                             //0x14
            ULONG Reserved:30;                                              //0x14
        };
    };
    enum _IO_ALLOCATION_ACTION (*DeviceRoutine)(struct _DEVICE_OBJECT* arg1, struct _IRP* arg2, VOID* arg3, VOID* arg4); //0x18
    VOID* DeviceContext;                                                    //0x20
    ULONG NumberOfMapRegisters;                                             //0x28
    VOID* DeviceObject;                                                     //0x30
    VOID* CurrentIrp;                                                       //0x38
    struct _KDPC* BufferChainingDpc;                                        //0x40
};