Partager via


Fonction de rappel PFNAVCINTERSECTHANDLER (avc.h)

Le gestionnaire d’intersection AV/C détermine si les plages de données sont compatibles. Il s’agit d’une fonction définie par l’utilisateur basée sur le prototype suivant :

Syntaxe

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
);

Paramètres

[in] Context

Valeur facultative attendue par le gestionnaire d’intersection. Cette valeur est fournie par le pilote de sous-unité (si le pilote de sous-unité fournit le gestionnaire d’intersection), ou par le pilote inférieur qui fournit le gestionnaire d’intersection.

[in] PinId

Spécifie le décalage (ou l’ID) de la broche pour laquelle l’intersection est effectuée.

[in] DataRange

[in] MatchingDataRange

[in] DataBufferSize

Taille de la mémoire tampon passée par le membre Data . S’il s’agit d’une valeur différente de zéro, le gestionnaire d’intersection doit tenter de retourner le format de données résultant d’une paire correspondante de plages de données. Si cette valeur est égale à zéro, le gestionnaire d’intersection doit fournir la taille de mémoire tampon requise dans ReportedDataSize et retourner STATUS_BUFFER_OVERFLOW.

[out, optional] Data

Mémoire tampon facultative pour recevoir le format de données résultant d’une paire correspondante de plages de données. Ce membre est ignoré si DataBufferSize est égal à zéro.

[out] DataSize

Valeur retournée

Le gestionnaire d’intersection doit retourner STATUS_SUCCESS si les plages de données sont compatibles et qu’il y avait suffisamment d’espace tampon pour retourner le format résultant.

Code de retour Description
STATUS_NO_MATCH Les plages de données ne sont pas compatibles.
STATUS_INTERNAL_ERROR Il y avait une incompatibilité inattendue de taille de format.
STATUS_BUFFER_OVERFLOW Le gestionnaire d’intersection retourne la taille de mémoire tampon requise par le biais du membre ReportedDataSize .
STATUS_BUFFER_TOO_SMALL Le gestionnaire d’intersection n’a pas été fourni avec une mémoire tampon suffisamment grande pour contenir le format résultant. Le gestionnaire d’intersection doit être appelé à nouveau avec dataBufferSize défini sur zéro pour déterminer la taille de mémoire tampon requise.
STATUS_INSUFFICIENT_RESOURCES Une allocation de mémoire tampon interne a échoué.

Remarques

Le gestionnaire d’intersection AV/C est défini par l’utilisateur, en fonction du prototype de fonction ci-dessus.

Le gestionnaire est utilisé conjointement avec le code de la fonction AVC_FUNCTION_GET_PIN_DESCRIPTOR . L’objectif du gestionnaire est de faire correspondre des formats de données d’épingle identiques et de les renvoyer à l’appelant.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête avc.h (inclure Avc.h)

Voir aussi