Funzione di callback PFNKSPINSETDATAFORMAT (ks.h)

La routine AVStrMiniPinSetDataFormat di AVStrMiniPinSetDataFormat di AVStream viene chiamata al momento della creazione del pin per verificare che il formato 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 cambia 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 dati per il pin e che l'invio di creazione del pin non è ancora stato eseguito. Un valore NULL indica che questa routine è stata chiamata in fase di 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 circolare 3, il modulo Kernel Streaming Proxy (KsProxy) imposta il formato dei dati in base al formato di connessione concordato o a una modifica del formato dinamico. KsProxy invia una richiesta di KSPROPERTY_CONNECTION_DATAFORMAT che, dopo una convalida iniziale, viene convertita in questa chiamata dispatch al minidriver. Vedere Kernel Streaming Proxy.See Kernel Streaming Proxy. Per altre informazioni, vedere Formati di dati KS e intervalli di dati e intersezioni dataRange in AVStream.

Il minidriver specifica l'indirizzo per AVStrMiniPinSetDataFormat nel membro SetDataFormat della relativa struttura 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

   
Client minimo supportato Disponibile nei sistemi operativi 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