STORAGE_ADAPTER_DESCRIPTOR結構 (ntddstor.h)
STORAGE_ADAPTER_DESCRIPTOR 結構會與 IOCTL_STORAGE_QUERY_PROPERTY 要求搭配使用,以擷取裝置的記憶體配接器描述項數據。
語法
typedef struct _STORAGE_ADAPTER_DESCRIPTOR {
ULONG Version;
ULONG Size;
ULONG MaximumTransferLength;
ULONG MaximumPhysicalPages;
ULONG AlignmentMask;
BOOLEAN AdapterUsesPio;
BOOLEAN AdapterScansDown;
BOOLEAN CommandQueueing;
BOOLEAN AcceleratedTransfer;
#if ...
BOOLEAN BusType;
#else
UCHAR BusType;
#endif
USHORT BusMajorVersion;
USHORT BusMinorVersion;
UCHAR SrbType;
UCHAR AddressType;
} STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR;
成員
Version
包含結構版本 STORAGE_ADAPTER_DESCRIPTOR。 當成員加入結構時,這個成員的值將會變更。
Size
指定描述項的大小總計,以位元組為單位。
MaximumTransferLength
指定主機總線配接器 (HBA) 可在單一作業中傳輸的最大位元元數目。
MaximumPhysicalPages
指定 HBA 可在單一傳輸中管理的不連續實體頁面數目上限(換句話說,其散佈/收集支援的範圍)。
AlignmentMask
指定 HBA 的傳輸對齊需求。 記憶體類別驅動程式會將其裝置物件中的 AlignmentRequirement 字段設定為此值。 對齊遮罩表示 HBA 為傳輸作業所需的緩衝區設定對齊限制。 有效的遮罩值為 0(位元組對齊)、1(字對齊)、3(DWORD 對齊),以及 7(雙 DWORD 對齊)。
AdapterUsesPio
指出當 TRUE HBA 使用程式化輸入/輸出 (PIO),並且需要使用對應至物理記憶體的系統空間虛擬位址來取得數據緩衝區。 當 FALSE時,HBA 不會使用 PIO。
AdapterScansDown
指出當 TRUE HBA 掃描 BIOS 裝置時,即 HBA 會以最高的裝置號碼開始掃描,而不是最低。 當 FALSE時,HBA 會以最低的裝置號碼開始掃描。 此成員會保留給舊版迷你埠驅動程式。
CommandQueueing
指出 HBA 何時 TRUE HBA 支援 SCSI 標記的佇列和/或每個邏輯單元內部佇列,或非 SCSI 對等專案。 當 FALSE時,HBA 既不支援 SCSI 標記的佇列,也不支援每個邏輯單元內部佇列。
AcceleratedTransfer
指出 HBA 何時 TRUE HBA 支援同步傳輸,以加速 I/O 的方式。 當 FALSE時,HBA 不支援同步傳輸,以加速 I/O 的方式。
BusType
指定類型為 STORAGE_BUS_TYPE 的值,指出裝置所連接的總線類型。
BusMajorVersion
指定 HBA 的主要版本號碼,如果有的話。
BusMinorVersion
指定 HBA 的次要版本號碼,如果有的話。
SrbType
指定 HBA 所使用的 SCSI 要求區塊 (SRB) 類型。 此成員從 Windows 8 開始有效。
價值 | 意義 |
---|---|
SRB_TYPE_SCSI_REQUEST_BLOCK | HBA 使用 SCSI 要求區塊。 |
SRB_TYPE_STORAGE_REQUEST_BLOCK | HBA 使用擴充的SCSI要求區塊。 |
AddressType
指定 HBA 的地址類型。 此成員從 Windows 8 開始有效。
價值 | 意義 |
---|---|
STORAGE_ADDRESS_TYPE_BTL8 | HBA 使用 8 位總線、目標和 LUN 尋址。 |
言論
記憶體類別驅動程式會發出具有 I/O 控制程式代碼的裝置控制要求,IOCTL_STORAGE_QUERY_PROPERTY 擷取此結構,其中包含 HBA 中用於數據傳輸作業的組態資訊。 結構可以從總線的裝置物件或從功能裝置物件 (FDO)擷取,該物件會將要求轉送至基礎總線。
如果支援同步傳輸的 HBA 上發生過多的通訊協定錯誤(AcceleratedTransferTRUE),記憶體類別驅動程式可以在 SRB 中設定SRB_FLAGS_DISABLE_SYNCH_TRANSFER來停用同步傳輸。
要求
要求 | 價值 |
---|---|
標頭 | ntddstor.h (include Ntddstor.h) |