typedef struct _IRP                                              // 21 elements, 0x70 bytes (sizeof)
          {
/*0x000*/     INT16        Type;
/*0x002*/     UINT16       Size;
/*0x004*/     struct _MDL* MdlAddress;
/*0x008*/     ULONG32      Flags;
              union                                                        // 3 elements, 0x4 bytes (sizeof)
              {
/*0x00C*/         struct _IRP* MasterIrp;
/*0x00C*/         LONG32       IrpCount;
/*0x00C*/         VOID*        SystemBuffer;
              }AssociatedIrp;
/*0x010*/     struct _LIST_ENTRY ThreadListEntry;                          // 2 elements, 0x8 bytes (sizeof)
/*0x018*/     struct _IO_STATUS_BLOCK IoStatus;                            // 3 elements, 0x8 bytes (sizeof)
/*0x020*/     CHAR         RequestorMode;
/*0x021*/     UINT8        PendingReturned;
/*0x022*/     CHAR         StackCount;
/*0x023*/     CHAR         CurrentLocation;
/*0x024*/     UINT8        Cancel;
/*0x025*/     UINT8        CancelIrql;
/*0x026*/     CHAR         ApcEnvironment;
/*0x027*/     UINT8        AllocationFlags;
/*0x028*/     struct _IO_STATUS_BLOCK* UserIosb;
/*0x02C*/     struct _KEVENT* UserEvent;
              union                                                        // 2 elements, 0x8 bytes (sizeof)
              {
                  struct                                                   // 3 elements, 0x8 bytes (sizeof)
                  {
                      union                                                // 2 elements, 0x4 bytes (sizeof)
                      {
/*0x030*/                 PVOID UserApcRoutine;
/*0x030*/                 VOID*        IssuingProcess;
                      };
/*0x034*/             VOID*        UserApcContext;
                  }AsynchronousParameters;
/*0x030*/         union _LARGE_INTEGER AllocationSize;                     // 4 elements, 0x8 bytes (sizeof)
              }Overlay;
/*0x038*/     PVOID CancelRoutine;
/*0x03C*/     VOID*        UserBuffer;
              union                                                        // 3 elements, 0x30 bytes (sizeof)
              {
                  struct                                                   // 8 elements, 0x28 bytes (sizeof)
                  {
                      union                                                // 2 elements, 0x10 bytes (sizeof)
                      {
/*0x040*/                 struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry;    // 3 elements, 0x10 bytes (sizeof)
/*0x040*/                 VOID*        DriverContext[4];
                      };
/*0x050*/             struct _ETHREAD* Thread;
/*0x054*/             CHAR*        AuxiliaryBuffer;
/*0x058*/             struct _LIST_ENTRY ListEntry;                        // 2 elements, 0x8 bytes (sizeof)
                      union                                                // 2 elements, 0x4 bytes (sizeof)
                      {
/*0x060*/                 struct _IO_STACK_LOCATION* CurrentStackLocation;
/*0x060*/                 ULONG32      PacketType;
                      };
/*0x064*/             struct _FILE_OBJECT* OriginalFileObject;
                  }Overlay;
/*0x040*/         struct _KAPC Apc;                                        // 16 elements, 0x30 bytes (sizeof)
/*0x040*/         VOID*        CompletionKey;
              }Tail;
          }IRP, *PIRP;
Return to structures/enums list.
Return to O.S. version list.

(c) MoonSols 2010.