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。
RangeInMemory
指出當 TRUE 時,範圍位於記憶體中,而不是在 I/O 空間中。 當 FALSE時,此範圍位於 I/O 空間中。
言論
每個ACCESS_RANGE都是傳遞至迷你埠驅動程式 HwStorFindAdapter 例程的 PORT_CONFIGURATION_INFORMATION 結構內的 AccessRanges 陣組元素。
Storport 會配置存取範圍的記憶體,並初始化 AccessRanges 成員。 迷你埠驅動程式的 HwStorFindAdapter 例程應該只使用提供的位址,而且 絕對不要 嘗試使用自己設計的位址在相同總線上尋找其他 HBA。 當埠驅動程式提供範圍資訊時,嘗試存取其他總線相對埠或記憶體範圍,特別是在 x86 實際模式中初始化某些裝置的 x86 僅限系統,可能會導致總線上的其他裝置無法初始化,甚至導致系統無法開機程式。
要求
要求 | 價值 |
---|---|
標頭 | storport.h (包括 Srb.h、Storport.h、Strmini.h) |