ACCESS_RANGE 結構 (storport.h)
ACCESS_RANGE描述 HBA 所使用的記憶體或 I/O 埠範圍。
語法
typedef struct _ACCESS_RANGE {
STOR_PHYSICAL_ADDRESS RangeStart;
ULONG RangeLength;
BOOLEAN RangeInMemory;
} ACCESS_RANGE, *PACCESS_RANGE;
成員
RangeStart
包含實體位址,指定 HBA 所使用範圍的總線相對基位址。 這個成員的值可以從PORT_CONFIGURATION_INFORMATION 結構中的其中一個 AccessRanges 元素取得。 這是可傳遞至 StorPortGetDeviceBase 的位址。
RangeLength
指定範圍中的埠大小、位元組或埠數目。 迷你埠驅動程序必須確定此值符合適配卡實際譯碼的範圍。 例如,如果 HBA 使用七個緩存器,但回應 8,則此成員應設定為 8。
RangeInMemory
表示當 為 TRUE 時,範圍位於記憶體中,而不是在 I/O 空間中。 當 為 FALSE 時,範圍會以 I/O 空格為單位。
備註
每個ACCESS_RANGE都是PORT_CONFIGURATION_INFORMATION結構內的AccessRanges 陣列元素,傳遞至迷你埠驅動程式的 HwStorFindAdapter 例程。
Storport 會配置存取範圍的記憶體,並初始化 AccessRanges 成員。 迷你埠驅動程式的 HwStorFindAdapter 例程應該只使用提供的位址,而且 絕對不應該 嘗試使用自己設計位址在相同的總線上尋找其他 HBA。 當埠驅動程式提供範圍資訊時,嘗試存取其他總線相對埠或記憶體範圍,特別是在某些裝置在 x86 實際模式中初始化的僅限 x86 系統,可能會導致總線上的其他裝置無法初始化,甚至導致系統無法開機程式。
規格需求
需求 | 值 |
---|---|
標頭 | storport.h (包含 Srb.h、Storport.h、Strmini.h) |