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 |