Condividi tramite


Funzione di callback PFNAVCINTERSECTHANDLER (avc.h)

Il gestore interseca AV/C determina se gli intervalli di dati sono compatibili. Si tratta di una funzione definita dall'utente basata sul prototipo seguente:

Sintassi

typedef NTSTATUS ( *PFNAVCINTERSECTHANDLER)(
  _In_      PVOID        Context,
  _In_      ULONG        PinId,
  _In_      PKSDATARANGE CallerDataRange,
  _In_      PKSDATARANGE DescriptorDataRange,
  _In_      ULONG        DataBufferSize,
  _Out_opt_ PVOID        Data,
  _Out_     PULONG       ReportedDataSize
);

Parametri

[in] Context

Valore facoltativo previsto dal gestore di intersect. Questo valore viene fornito dal driver subunit (se il driver subunit fornisce il gestore interseca) o dal driver inferiore che fornisce il gestore di intersect.

[in] PinId

Specifica l'offset (o ID) del segnaposto per il quale viene eseguita l'intersezione.

[in] DataRange

[in] MatchingDataRange

[in] DataBufferSize

Dimensione del buffer passato dal membro dati. Se si tratta di un valore diverso da zero, il gestore interseca deve tentare di restituire il formato di dati risultante da una coppia corrispondente di intervalli di dati. Se è pari a zero, il gestore di intersect deve fornire le dimensioni del buffer necessarie in ReportedDataSizee restituire STATUS_BUFFER_OVERFLOW.

[out, optional] Data

Buffer facoltativo per ricevere il formato di dati risultante da una coppia di intervalli di dati corrispondente. Questo membro viene ignorato se DataBufferSize è zero.

[out] DataSize

Valore restituito

Il gestore di intersect deve restituire STATUS_SUCCESS se gli intervalli di dati sono compatibili e lo spazio del buffer è sufficiente per restituire il formato risultante.

Codice restituito Descrizione
STATUS_NO_MATCH Gli intervalli di dati non sono compatibili.
STATUS_INTERNAL_ERROR Si è verificato un errore di mancata corrispondenza delle dimensioni del formato imprevisto.
STATUS_BUFFER_OVERFLOW Il gestore di intersect restituisce le dimensioni del buffer necessarie tramite il membro ReportedDataSize.
STATUS_BUFFER_TOO_SMALL Il gestore di intersect non è stato fornito con un buffer sufficientemente grande da contenere il formato risultante. Il gestore di intersect deve essere chiamato di nuovo con il DataBufferSize impostato su zero per determinare le dimensioni del buffer necessarie.
STATUS_INSUFFICIENT_RESOURCES Un'allocazione interna del buffer non è riuscita.

Osservazioni

Il gestore intersect AV/C è definito dall'utente, in base al prototipo di funzione precedente.

Il gestore viene usato insieme al codice della funzione AVC_FUNCTION_GET_PIN_DESCRIPTOR. Lo scopo del gestore è corrispondere a formati di dati pin identici e restituirli al chiamante.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione avc.h (include Avc.h)

Vedere anche