StorPortGetDeviceBase 函式 (storport.h)
StorPortGetDeviceBase 例程會將 I/O 位址對應至系統地址空間。
語法
STORPORT_API PVOID StorPortGetDeviceBase(
[in] PVOID HwDeviceExtension,
[in] INTERFACE_TYPE BusType,
[in] ULONG SystemIoBusNumber,
[in] STOR_PHYSICAL_ADDRESS IoAddress,
[in] ULONG NumberOfBytes,
[in] BOOLEAN InIoSpace
);
參數
[in] HwDeviceExtension
硬體裝置擴充功能的指標。 這是每個 HBA 儲存區域,埠驅動程式會代表迷你埠驅動程式配置和初始化。 迷你埠驅動程式通常會將此擴充功能中儲存 HBA 特定資訊,例如 HBA 的狀態和 HBA 的對應存取範圍。 此區域可在迷你埠驅動程式呼叫 StorPortInitialize 之後立即提供給迷你埠驅動程式。 埠驅動程式會在移除裝置時釋放此記憶體。
[in] BusType
指定 HBA 所連接之 I/O 總線的介面類型。 迷你埠驅動程式的 HwStorFindAdapter 例程會從輸入PORT_CONFIGURATION_INFORMATION的 AdapterInterfaceType 成員取得此參數的值。
[in] SystemIoBusNumber
指定 HBA 所連接之 I/O 總線的系統指派號碼。 HwStorFindAdapter 例程會從輸入PORT_CONFIGURATION_INFORMATION的 SystemIoBusNumber 成員取得此參數的值。
[in] IoAddress
指定 HBA 所使用範圍的總線相對基位址。 如果埠驅動程式提供範圍設定資訊,HwStorFindAdapter 例程會從 PORT_CONFIGURATION_INFORMATION其中一個 AccessRanges 元素取得此參數的值。 否則,此位址可以是 StorPortGetBusData 所傳回的值,或是提供迷你埠驅動程序的預設值。 避免使用零的基位址,因為其成功傳回狀態可能會與 NULL) (錯誤狀態衝突。
[in] NumberOfBytes
指定對應應涵蓋的範圍位元組大小。 如果埠驅動程式提供範圍設定資訊,HwStorFindAdapter 例程會從與 IoAddress 相同的 AccessRanges 元素取得此參數的值。 否則, StorPortGetBusData 或迷你埠驅動程式提供的預設值可以傳回此值。 在任何情況下,驅動程式都不能存取傳回、對應範圍以外的硬體。
[in] InIoSpace
TRUE 表示要對應的範圍位於 I/O 空間中,而迷你埠驅動程式會將此範圍內的對應位址傳遞至 Storport 埠 讀取/寫入例程,以與 HBA 通訊。 HwStorFindAdapter 例程會從與 IoAddress 相同的 AccessRanges 元素取得此參數的值。 請注意,迷你埠驅動程式在傳遞至 StorPortGetDeviceBase 做為 InIoSpace 自變數之前,必須在ACCESS_RANGE類型元素中反轉InMemorySpace 成員的值。 FALSE 表示要對應的範圍位於記憶體空間中。
傳回值
對應邏輯基地址,對應至 IoAddress 參數中提供的總線相對位址。
備註
每個迷你埠驅動程式都必須在與其 HBA (s) 通訊時,將對應的邏輯存取範圍位址傳遞至 Storport 埠 讀取/寫入例程,以及 Storport 註冊 讀取/寫入例程。
此例程僅支持系統指派給驅動程式的位址,隨插即用 (PnP) 管理員。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | storport.h (包含 Storport.h) |
程式庫 | Storport.lib |