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
選擇性。 新格式的屬性範圍。
傳回值
如果 Pin 的 ConnectionFormat 成員符合傳遞至此例程的範圍,則傳回STATUS_SUCCESS。 如果 ConnectionFormat 不符合傳遞的範圍,而且 minidriver 想要繼續嘗試尋找與另一個範圍的相符專案,則傳回STATUS_NO_MATCH。 如果 ConnectionFormat 不符合傳遞的範圍,而且 minidriver 不想要繼續嘗試尋找與另一個範圍的相符專案,則傳回您選擇的錯誤碼。 請勿傳回STATUS_PENDING。
備註
在環 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 |