共用方式為


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 不符合傳遞的範圍,而且 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之前呼叫,而迷你驅動程式應該準備好處理這種情況。

OldFormatOldAttributeListAttributeRange 都是選擇性參數,而且可以是 NULL

此例程是選擇性的。

規格需求

需求
最低支援的用戶端 適用於 Microsoft Windows XP 和更新版本的作業系統和 DirectX 8.0 和更新版本的 DirectX 版本。
目標平台 桌面
標頭 ks.h (包含 Ks.h)
IRQL PASSIVE_LEVEL

另請參閱

IRP_MJ_CREATE

KSDATAFORMAT

KSDATARANGE

KSMULTIPLE_ITEM

KSPIN

KSPIN_DISPATCH