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