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_INFORMATIONAdapterInterfaceType 成員取得此參數的值。

[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

另請參閱

StorPortFreeDeviceBase