Share via


StorPortStateChangeDetected 函式 (storport.h)

通知 Storport 埠驅動程式邏輯單元號碼 (LUN) 、主機總線適配卡 (HBA) 埠或目標裝置的狀態變更。

語法

ULONG StorPortStateChangeDetected(
  [in]           PVOID            HwDeviceExtension,
  [in]           ULONG            ChangedEntity,
  [in]           PSTOR_ADDRESS    Address,
  [in]           ULONG            Attributes,
  [in, optional] PHW_STATE_CHANGE HwStateChange,
  [in, optional] PVOID            HwStateChangeContext
);

參數

[in] HwDeviceExtension

硬體裝置擴充功能的指標。 這是埠驅動程式代表迷你埠驅動程式配置和初始化的每個 HBA 儲存區域。 迷你埠驅動程式通常會在此延伸模組中儲存 HBA 特定資訊,例如 HBA 的狀態和 HBA 的對應存取範圍。 迷你埠驅動程式會在迷你埠驅動程式呼叫 StorPortInitialize 之後立即提供此區域。 埠驅動程式會在移除裝置時釋放此記憶體。

[in] ChangedEntity

指出其狀態已變更之實體的旗標。 這是這些值的位元組 OR 組合:

意義
STATE_CHANGE_LUN
1 (0x1)
LUN 狀態已變更。
STATE_CHANGE_TARGET
2 (0x2)
目標狀態已變更。
STATE_CHANGE_BUS
4 (0x4)
總線或埠狀態已變更。

[in] Address

狀態變更之實體的位址。 叫用 HwStateChange 的回呼之前,位址值無法變更。 如果 Address 配置於記憶體中,則回呼例程應該釋放記憶體。

[in] Attributes

與實體相關聯的屬性。 以下是下列專案的位 OR 組合:

意義
ATTRIBUTE_VM_PASSTHROUGH_LUN
LUN 會保留給虛擬機使用。

[in, optional] HwStateChange

迷你埠所提供回呼例程的指標。 如果有,當驅動程式完成處理此狀態變更通知時,Storport 驅動程式會呼叫此例程。

[in, optional] HwStateChangeContext

呼叫 HwStateChange 中的例程時,隨附於迷你埠提供的內容值。

傳回值

指出通知結果的狀態值。 這可以是下列其中一個值:

傳回碼 Description
STOR_STATUS_SUCCESS
狀態變更通知已排定進行處理。
STOR_STATUS_INVALID_PARAMETER
地址類型或實體類型無效。
STOR_STATUS_UNSUCCESSFUL
先前的通知正在進行中,因此無法排程此通知。

備註

成功呼叫 StorPortStateChangeDetected 會導致重新列舉已變更的實體。

隨時只能有一個狀態變更要求作用中。 如果迷你埠需要進行另一個 StorPortStateChangeDetected 呼叫,它應該提供 HwStateChange 回呼,並在回呼 HwStateChange 之後對 StorPortStateChangeDetected 進行另一次呼叫。 如果迷你埠想要同時指出多個狀態變更,迷你埠可以呼叫 StorPortStateChangeDetected 一次,並在 ChangedEntity 中設定的已變更實體,其中包含所有目前狀態變更。

如果在 ChangedEntity 中指定多個旗標,則具有較高值的旗標優先順序會高於較小的旗標。

規格需求

需求
最低支援的用戶端 Windows 8 和更新版本的 Windows 中提供。
目標平台 Universal
標頭 storport.h (包含 Storport.h)
IRQL 任何

另請參閱

HwStorStateChange