typedef struct _WAIT_CONTEXT_BLOCK
{
    KDEVICE_QUEUE_ENTRY WaitQueueEntry;
    IO_ALLOCATION_ACTION (*DeviceRoutine)(DEVICE_OBJECT *, IRP *, void *, void *);
    void *DeviceContext;
    unsigned long NumberOfMapRegisters;
    void *DeviceObject;
    void *CurrentIrp;
    KDPC *BufferChainingDpc;
} WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK;