typedef struct _FILE_OBJECT
{
    short Type;
    short Size;
    DEVICE_OBJECT *DeviceObject;
    VPB *Vpb;
    void *FsContext;
    void *FsContext2;
    SECTION_OBJECT_POINTERS *SectionObjectPointer;
    void *PrivateCacheMap;
    long FinalStatus;
    FILE_OBJECT *RelatedFileObject;
    unsigned char LockOperation;
    unsigned char DeletePending;
    unsigned char ReadAccess;
    unsigned char WriteAccess;
    unsigned char DeleteAccess;
    unsigned char SharedRead;
    unsigned char SharedWrite;
    unsigned char SharedDelete;
    unsigned long Flags;
    UNICODE_STRING FileName;
    LARGE_INTEGER CurrentByteOffset;
    unsigned long Waiters;
    unsigned long Busy;
    void *LastLock;
    KEVENT Lock;
    KEVENT Event;
    IO_COMPLETION_CONTEXT *CompletionContext;
    unsigned __int64 IrpListLock;
    LIST_ENTRY IrpList;
    void *FileObjectExtension;
} FILE_OBJECT, *PFILE_OBJECT;