structure KSMETHOD_ITEM (ks.h)

La structure KSMETHOD_ITEM décrit une méthode unique au sein d’un jeu de méthodes.

Syntaxe

typedef struct {
  ULONG        MethodId;
  union {
    PFNKSHANDLER MethodHandler;
    BOOLEAN      MethodSupported;
  };
  ULONG        MinMethod;
  ULONG        MinData;
  PFNKSHANDLER SupportHandler;
  ULONG        Flags;
} KSMETHOD_ITEM, *PKSMETHOD_ITEM;

Membres

MethodId

Spécifie l’identificateur de cette méthode dans son jeu de méthodes.

MethodHandler

Pointeur vers une routine de rappel KStrMethodHandler fournie par minidriver.

MethodSupported

Spécifie si cette méthode est prise en charge ou non.

MinMethod

Spécifie la taille minimale de la mémoire tampon requise pour spécifier complètement la méthode. Cette taille est d’au moins sizeof(KSMETHOD) octets.

MinData

Spécifie la mémoire tampon de taille minimale requise pour spécifier la mémoire tampon de données de méthode. Cette mémoire tampon est utilisée pour lire et/ou écrire des informations relatives à la méthode.

SupportHandler

Pointeur vers une routine de rappel KStrSupportHandler fournie par minidriver.

Flags

Spécifie le type de demande de cette demande de méthode.

Valeur Type de demande de méthode
KSMETHOD_TYPE_NONE Indique que la mémoire tampon de données du gestionnaire n’est pas censée être utilisée. Pour les méthodes mises en mémoire tampon, bien que l’espace soit alloué, aucune donnée n’est copiée vers ou à partir de la mémoire tampon système. En mode source (KSMETHOD_TYPE_SOURCE), aucune MDL n’est créée.
KSMETHOD_TYPE_READ Indique que les paramètres sont censés être lus à partir de la mémoire tampon de données du gestionnaire. Lorsqu’elles sont mises en mémoire tampon, les données sont copiées dans la mémoire tampon système. En mode source, les données sont sondées et verrouillées pour IoReadAccess.
KSMETHOD_TYPE_WRITE Indique que les paramètres sont censés être écrits dans la mémoire tampon de données du gestionnaire. Lorsqu’elles sont mises en mémoire tampon, les données sont copiées à partir de la mémoire tampon système. En mode source, les données sont sondées et verrouillées pour IoWriteAccess.
KSMETHOD_TYPE_MODIFY Indique que les paramètres sont censés être lus et écrits dans la mémoire tampon de données du gestionnaire. Les données transmises sont remplacées par les données retournées. Cela peut impliquer qu’une structure transmise puisse être simplement mise à jour. Lorsqu’elles sont mises en mémoire tampon, les données sont copiées dans la mémoire tampon système et copiées une fois l’IRP terminée. En mode source, les données sont sondées et verrouillées pour IoModifyAccess.
KSMETHOD_TYPE_SOURCE Indique que la méthode doit être traitée en mode source. Une MDL est allouée et les données sont sondées et verrouillées. Pour indiquer une méthode mise en mémoire tampon, OU cet indicateur avec d’autres indicateurs de cette liste.

Remarques

Un minidriver utilise la structure KSMETHOD_ITEM pour définir des méthodes dans un jeu de méthodes. Le minidriver implémente des méthodes et utilise le membre MethodHandler pour pointer vers ces méthodes. Un client peut ensuite utiliser la requête IOCTL_KS_METHOD avec la structure KSMETHOD pour exécuter des méthodes sur un objet de streaming de noyau que le minidriver gère. Pour plus d’informations, consultez Méthodes KS.

Configuration requise

Condition requise Valeur
En-tête ks.h (inclure Ks.h)

Voir aussi

KSFASTMETHOD_ITEM

KSMETHOD

KStrSupportHandler