共用方式為


PFNKSPINSETDEVICESTATE 回調函式 (ks.h)

AVStream minidriver 的 AVStrMiniPinSetDeviceState 例程會在 KSPIN 結構的狀態因為連線狀態屬性 'set' IOCTL 的抵達而變更。 這通常是由需要變更硬體狀態的迷你驅動程式提供。

語法

PFNKSPINSETDEVICESTATE Pfnkspinsetdevicestate;

NTSTATUS Pfnkspinsetdevicestate(
  [in] PKSPIN Pin,
  [in] KSSTATE ToState,
  [in] KSSTATE FromState
)
{...}

參數

[in] Pin

KSPIN 結構的指標,其狀態正在變更。

[in] ToState

收到 IOCTL 之後,目標 KSSTATE

[in] FromState

上一個 KSSTATE

傳回值

傳回STATUS_SUCCESS或嘗試設定狀態所傳回的錯誤碼。 請勿傳回STATUS_PENDING。 此函式期間會保留篩選控件 Mutex。 請參閱 AVStream 中的篩選控件 Mutex。

言論

minidriver 會在其 KSPIN_DISPATCH 結構的 SetDeviceState 成員中指定此例程的位址。

迷你驅動程式不會在針腳的初始連線時收到停止。

使用標準傳輸機制的針腳(標準介面/標準媒體或明確使用 KSPIN_DESCRIPTOR_EX中的KSPIN_FLAG_USE_STANDARD_TRANSPORT)透過這個例程透過擁有管道接收篩選的狀態變更。 這表示不會超過單一步驟的轉換。 換句話說,KSSTATE_STOP 轉換為KSSTATE_ACQUIRE、KSSTATE_ACQUIRE 轉換為KSSTATE_PAUSE等等。 此外,在此例程中收到的狀態變更代表管道整體的狀態,而不是 KSPIN 結構 DeviceState 成員中所報告的針腳個別狀態。

未使用標準傳輸機制的針腳(非標準介面、非標準媒體,或明確使用 KSPIN_DESCRIPTOR_EX中的KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT)會透過此例程接收未篩選的狀態變更。 因此,非標準傳輸針腳必須準備好處理跳躍超過單一步驟的狀態變更。 例如,請考慮從 KSSTATE_RUN 跳到 KSSTATE_STOP,而不需介入KSSTATE_PAUSE。 此外,向這個例程回報的狀態會與 DeviceState 中報告的狀態相同, 相關 KSPIN 結構的成員。

此例程是選擇性的。

要求

要求 價值
最低支援的用戶端 Microsoft Windows XP 和更新版本的作系統和 DirectX 8.0 和更新版本的 DirectX 版本中提供。
目標平臺 桌面
標頭 ks.h (包括 Ks.h)
IRQL PASSIVE_LEVEL

另請參閱

KSPIN_DISPATCH