Funzione di callback PFNKSPINSETDATAFORMAT (ks.h)

Una routine AVStream minidriver AVStrMiniPinPinSetDataFormat viene chiamata al momento della creazione del pin per verificare che il formato di dati concordato in precedenza sia accettabile per questa struttura KSPIN e una corrispondenza per questa struttura KSDATARANGE . Questa routine viene chiamata anche a causa di determinati tipi di modifiche al formato dinamico, ad esempio l'accettazione di una richiesta di proprietà KSPROPERTY_CONNECTION_PROPOSEDATAFORMAT .

Sintassi

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
)
{...}

Parametri

[in] Pin

Puntatore alla struttura KSPIN per cui viene modificato il formato dei dati.

[in, optional] OldFormat

facoltativo. Puntatore a una struttura KSDATAFORMAT . I minidriver possono usare questo campo per determinare il formato di dati usato dal pin prima di questa chiamata. Se NULL, indica che non è stato impostato alcun formato di dati per il pin e che la creazione del pin non è ancora stata eseguita. Un valore NULL indica che questa routine è stata chiamata al momento dell'inizializzazione per la verifica del formato.

[in, optional] OldAttributeList

facoltativo. Puntatore a una struttura KSMULTIPLE_ITEM che archivia gli attributi per il formato precedente.

[in] DataRange

Puntatore a una struttura KSDATARANGE . Intervallo di dati per il nuovo formato.

[in, optional] AttributeRange

facoltativo. Intervallo di attributi per il nuovo formato.

Valore restituito

Restituisce STATUS_SUCCESS se il membro ConnectionFormat di Pin corrisponde all'intervallo passato a questa routine. Restituisce STATUS_NO_MATCH se ConnectionFormat non corrisponde all'intervallo passato e il minidriver vuole continuare a cercare di trovare una corrispondenza con un altro intervallo. Restituisce un codice di errore scelto se ConnectionFormat non corrisponde all'intervallo passato e il minidriver non vuole continuare a cercare di trovare una corrispondenza con un altro intervallo. Non restituire STATUS_PENDING.

Commenti

In un grafico anello 3, il modulo Kernel Streaming Proxy (KsProxy) imposta il formato di dati in base al formato di connessione concordato o a una modifica dinamica del formato. KsProxy genera una richiesta di KSPROPERTY_CONNECTION_DATAFORMAT che, dopo una convalida iniziale, viene tradotta in questa chiamata di invio al minidriver. Vedere Proxy di streaming del kernel. Per altre informazioni, vedere Formati di dati KS e intervalli di dati eintersezioni dataRange in AVStream.

Il minidriver specifica l'indirizzo per AVStrMiniPinSetDataFormat nel membro SetDataFormat della relativa struttura di KSPIN_DISPATCH .

Questa routine può essere chiamata prima che il pin riceva un IRP_MJ_CREATE e i minidriver devono essere preparati a gestire questa situazione.

OldFormat, OldAttributeList e AttributeRange sono tutti parametri facoltativi e possono essere NULL.

Questa routine è facoltativa.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Microsoft Windows XP e versioni successive e DirectX 8.0 e versioni successive di DirectX.
Piattaforma di destinazione Desktop
Intestazione ks.h (include Ks.h)
IRQL PASSIVE_LEVEL

Vedi anche

IRP_MJ_CREATE

KSDATAFORMAT

KSDATARANGE

KSMULTIPLE_ITEM

KSPIN

KSPIN_DISPATCH