存储系统数据结构:
1. 卷参数块(VPB)
kd> dt nt!_VPB
Type
Size
Flags
VolumeLabelLength
DeviceObject Ptr32 _DEVICE_OBJECT
RealDevice Ptr32 _DEVICE_OBJECT
SerialNumber
ReferenceCount
VolumeLabel [32] Uint 2B
2. 文件对象(File_Object)
kd> dt nt!_file_object
Type
Size
DeviceObject Ptr32 _DEVICE_OBJECT
Vpb Ptr32 _VPB
FsContext
FsContext2
SectionObjectPointer Ptr32 _SECTION_OBJECT_POINTERS
PrivateCacheMap
FinalStatus
RelatedFileObject Ptr32 _FILE_OBJECT
LockOperation
DeletePending UCHAR
ReadAccess UCHAR
WriteAccess UCHAR
DeleteAccess UCHAR
ShareRead UCHAR
ShareWrite UCHAR
ShareDelete UCHAR
Flags
FileName _UNICODE_STRING
CurrentByteOffset _LARGE_INTEGER
Waiters
Busy
LastLock
Lock _KEVENT
Event _KEVENT
CompletionContext Ptr32 _IO_COMPLETION_CONTEXT
3. SCSI请求块(SRB)
typedef struct _SCSI_REQUEST_BLOCK_ {
USHORT Length;
UCHAR Function;
UCHAR SrbStatus;
UCHAR ScsiStatus;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
UCHAR QueueTag;
UCHAR QueueAction;
UCHAR CdbLength;
UCHAR SenseInfoBufferLength;
ULONG SrbFlags;
ULONG DataTransferLength;
ULONG TimeOutValue;
PVOID DataBuffer;
PVOID SenseInfoBuffer;
struct _SCSI_REQUEST_BLOCK *NextSrb;
PVOID OriginalRequest;
PVOID SrbExtension;
union {
ULONG InternalStatus;
ULONG QueueSortKey;
};
UCHAR Cdb[16];
} SCSI_REQUEST_BLOCK, *PSCSI_REQUEST_BLOCK;