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
指出 HBA 使用程式化輸入/輸出 (PIO) ,且需要使用對應至實體記憶體的系統空間虛擬位址來進行數據緩衝區的時機。 當為 FALSE 時,HBA 不會使用 PIO。
AdapterScansDown
指出 HBA 掃描 BIOS 裝置的時機 ,也就是說,HBA 會以最高的裝置號碼開始掃描,而不是最低。 當為 FALSE 時,HBA 會以最低的裝置號碼開始掃描。 此成員會保留給舊版迷你埠驅動程式。
CommandQueueing
指出 HBA 支援 SCSI 標記的佇列和/或每個邏輯單元內部佇列,或非 SCSI 對等佇列的 TRUE。 當為 FALSE 時,HBA 不支援 SCSI 標記的佇列,也不支援每個邏輯單元內部佇列。
AcceleratedTransfer
指出 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 上發生過多的通訊協定錯誤, (AcceleratedTransfer 為 TRUE) ,則記憶體類別驅動程式可以在 SRB 中設定SRB_FLAGS_DISABLE_SYNCH_TRANSFER來停用同步傳輸。
規格需求
需求 | 值 |
---|---|
標頭 | ntddstor.h (包含 Ntddstor.h) |