共用方式為


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 回呼之前,無法變更。 如果 位址 配置在記憶體中,則回呼例程應該釋放記憶體。

[in] Attributes

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

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

[in, optional] HwStateChange

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

[in, optional] HwStateChangeContext

呼叫 HwStateChange 中的例程設定時,會包含迷你埠提供的內容值。

傳回值

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

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

言論

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

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

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

要求

要求 價值
最低支援的用戶端 適用於 Windows 8 和更新版本的 Windows。
目標平臺 普遍
標頭 storport.h (包括 Storport.h)
IRQL 任何

另請參閱

HwStorStateChange