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