PFNKSPINSETDATAFORMAT 回調函式 (ks.h)
AVStream minidriver 的 AVStrMiniPinSetDataFormat 例程會在針腳建立時呼叫,以確認此 KSPIN 結構可接受先前同意的數據格式,並符合此 KSDATARANGE 結構。 這個例程也會因為某些類型的動態格式變更而呼叫,例如接受 KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT 屬性要求。
語法
PFNKSPINSETDATAFORMAT Pfnkspinsetdataformat;
NTSTATUS Pfnkspinsetdataformat(
[in] PKSPIN Pin,
[in, optional] PKSDATAFORMAT OldFormat,
[in, optional] PKSMULTIPLE_ITEM OldAttributeList,
[in] const KSDATARANGE *DataRange,
[in, optional] const KSATTRIBUTE_LIST *AttributeRange
)
{...}
參數
[in] Pin
KSPIN 結構的指標,數據格式正在變更。
[in, optional] OldFormat
自選。 KSDATAFORMAT 結構的指標。 Minidrivers 可以使用此字段來判斷釘選在呼叫之前所使用的數據格式。 如果 NULL,表示尚未設定針腳的數據格式,而且尚未建立分派 Pin 的 分派。 此處 NULL 值表示在格式驗證的初始化時間呼叫此例程。
[in, optional] OldAttributeList
自選。 KSMULTIPLE_ITEM 結構的指標,這個結構會儲存先前格式的屬性。
[in] DataRange
KSDATARANGE 結構的指標。 新格式的數據範圍。
[in, optional] AttributeRange
自選。 新格式的屬性範圍。
傳回值
如果 PinConnectionFormat 成員符合傳遞至此例程的範圍,則傳回STATUS_SUCCESS。 如果 ConnectionFormat 不符合傳遞的範圍,而且迷你驅動程式想要繼續嘗試尋找與另一個範圍的相符專案,則傳回STATUS_NO_MATCH。 如果 ConnectionFormat 不符合傳遞的範圍,而且迷你驅動程式不想繼續嘗試尋找與另一個範圍的相符專案,則傳回選擇的錯誤碼。 請勿傳回STATUS_PENDING。
言論
在 Ring 3 圖表中,核心串流 Proxy 模組 (KsProxy) 會根據已同意的連接格式或動態格式變更來設定數據格式。 KsProxy 發出 KSPROPERTY_CONNECTION_DATAFORMAT 要求,在經過一些初始驗證之後,會轉譯為迷你驅動程式的這個分派呼叫。 請參閱 核心串流 Proxy。 如需詳細資訊,請參閱AVStream 中的 KS 資料格式和數據範圍 和DataRange 交集。
minidriver 會指定其 KSPIN_DISPATCH 結構之 SetDataFormat 成員中 AVStrMiniPinSetDataFormat 的位址。
這個例程可以在針腳收到 IRP_MJ_CREATE之前呼叫,而迷你驅動程式應該準備好處理這種情況。
OldFormat、OldAttributeList和 AttributeRange 都是選擇性參數,而且可以 NULL。
此例程是選擇性的。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Microsoft Windows XP 和更新版本的作系統和 DirectX 8.0 和更新版本的 DirectX 版本中提供。 |
目標平臺 | 桌面 |
標頭 | ks.h (包括 Ks.h) |
IRQL | PASSIVE_LEVEL |