Partager via


PFNAVCINTERSECTHANDLER, fonction de rappel (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’intersections. Cette valeur est fournie par le pilote de sous-unité (si le pilote de sous-unité fournit le gestionnaire d’intersections) ou par le pilote inférieur fournissant le gestionnaire d’intersections.

[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 intersect doit tenter de retourner le format de données résultant d’une paire correspondante de plages de données. S’il s’agit de zéro, le gestionnaire d’intersection doit fournir la taille de mémoire tampon requise dans ReportedDataSizeet 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 de retour

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

Retourner le code Description
STATUS_NO_MATCH Les plages de données ne sont pas compatibles.
STATUS_INTERNAL_ERROR Il y avait une incompatibilité de taille de format inattendue.
STATUS_BUFFER_OVERFLOW Le gestionnaire d’intersection retourne la taille de mémoire tampon requise via le 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 le DataBufferSize défini sur zéro pour déterminer la taille de mémoire tampon requise.
STATUS_INSUFFICIENT_RESOURCES Échec de l’allocation de mémoire tampon interne.

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 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.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête avc.h (inclure Avc.h)

Voir aussi