KsMethodHandlerWithAllocator, fonction (ks.h)
Les fonctions KsMethodHandlerWithAllocator effectuent la même gestion que KsMethodHandler, avec les mêmes restrictions, mais autorise un rappel d’allocator facultatif à utiliser pour fournir une mémoire tampon pour les paramètres. S’il est utilisé, le filtre peut avoir besoin de libérer la mémoire tampon de manière non conventionnelle. Notez que les indicateurs IRP_BUFFERED_IO et IRP_DEALLOCATE_BUFFER ne sont pas définis lors de l’utilisation d’un allocateur personnalisé.
Syntaxe
KSDDKAPI NTSTATUS KsMethodHandlerWithAllocator(
[in] PIRP Irp,
[in] ULONG MethodSetsCount,
[in] const KSMETHOD_SET *MethodSet,
[in, optional] PFNKSALLOCATOR Allocator,
[in, optional] ULONG MethodItemSize
);
Paramètres
[in] Irp
Spécifie l’IRP avec la requête de méthode gérée.
[in] MethodSetsCount
Indique le nombre de structures de jeu de méthodes passées.
[in] MethodSet
Spécifie le pointeur vers la liste des informations de jeu de méthodes.
[in, optional] Allocator
Si vous le souhaitez, il pointe vers une fonction d’allocation qui sera utilisée pour allouer de la mémoire pour stocker les paramètres de méthode.
[in, optional] MethodItemSize
Contient éventuellement la taille de chaque structure KSMETHOD_ITEM dans chaque liste de méthodes. L’élément de méthode peut être étendu pour stocker des informations privées. Si ce paramètre est égal à zéro, la taille de la structure est supposée être normale. S’il est supérieur ou égal à une structure d’élément de méthode, la macro KSMETHOD_ITEM_IRP_STORAGE peut être utilisée pour renvoyer un pointeur vers l’élément de méthode afin que les données personnalisées puissent être récupérées. Sur les plateformes 64 bits, ce paramètre doit être un multiple de 8.
Valeur de retour
La fonction KsMethodHandler retourne STATUS_SUCCESS en cas de réussite, ou une erreur spécifique à la méthode gérée en cas d’échec. La fonction définit toujours la IO_STATUS_BLOCK. Champ d’informations du PIRP. Élément IoStatus au sein de l’IRP à zéro en raison d’une erreur interne, ou l’élément est défini par un gestionnaire de méthode. La fonction ne définit pas la IO_STATUS_BLOCK. Champ d’état ni terminer l’IRP.
Sur les plateformes 64 bits, si le paramètre PropertyItemSize n’est pas un multiple de 8, STATUS_INVALID_PARAMETER est retourné et l’appel échoue.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | ks.h (include Ks.h) |
bibliothèque | Ks.lib |