Partager via


KsSynchronousDeviceControl, fonction (ksproxy.h)

La fonction KsSynchronousDeviceControl émet une opération de contrôle d’E/S d’appareil synchrone sur l’objet KS spécifié par un handle de fichier.

Syntaxe

KSDDKAPI HRESULT KsSynchronousDeviceControl(
  [in]            HANDLE Handle,
  [in]            ULONG  IoControl,
  [in, optional]  PVOID  InBuffer,
  [in]            ULONG  InLength,
  [out, optional] PVOID  OutBuffer,
  [in]            ULONG  OutLength,
  [in, out]       PULONG BytesReturned
);

Paramètres

[in] Handle

Gérez l’objet KS sur lequel effectuer l’opération.

[in] IoControl

Code de contrôle qui identifie un type spécifique d’opération à effectuer sur un objet KS.

[in, optional] InBuffer

Pointeur vers une mémoire tampon qui contient des données qui spécifient l’opération à effectuer.

[in] InLength

Taille, en octets, de la mémoire tampon dans InBuffer.

[out, optional] OutBuffer

Pointeur vers une mémoire tampon qui contient des données pour l’opération ou un espace tampon qui reçoit les données de l’opération.

[in] OutLength

Taille, en octets, de la mémoire tampon dans OutBuffer.

[in, out] BytesReturned

Pointeur vers une variable qui reçoit la taille, en octets, des données que KsSynchronousDeviceControl stocke dans la mémoire tampon sur OutBuffer.

Valeur retournée

Retourne NOERROR en cas de réussite ; sinon, retourne un code d’erreur.

Remarques

Pour récupérer le handle de l’objet KS, une application doit appeler la méthode IKsObject ::KsGetObjectHandle .

Une application peut définir le code de contrôle dans IoControl et les mémoires tampons dans InBuffer et OutBuffer comme suit pour spécifier l’opération à effectuer :

  • Définissez IoControlsur IOCTL_KS_PROPERTY pour accéder à une propriété. Définissez InBuffer pour qu’il pointe vers une structure KSPROPERTY qui spécifie la propriété du jeu de propriétés à accéder et indique s’il faut récupérer des informations sur la propriété ou définir des informations dans la propriété. Pour définir des informations dans la propriété, définissez OutBuffer pour qu’elle pointe vers ces informations. Pour récupérer des informations de la propriété, définissez OutBuffer pour recevoir ces informations.
  • Définissez IoControlsur IOCTL_KS_METHOD pour exécuter une méthode. Définissez InBuffer pour qu’il pointe vers une structure KSMETHOD qui spécifie la méthode du jeu de méthodes à exécuter et s’il faut lire et/ou écrire des données liées à la méthode. Pour lire des données, définissez OutBuffer pour qu’il pointe vers ces données. Pour écrire des données, définissez OutBuffer pour recevoir ces données.
  • Définissez IoControlsur IOCTL_KS_ENABLE_EVENT pour demander que l’objet KS spécifié par Handle notifie l’application chaque fois qu’une action d’événement spécifique se produit. Définissez InBuffer pour qu’il pointe vers une structure KSEVENT qui spécifie l’événement du jeu d’événements à signaler. Définissez OutBuffer pour pointer vers une structure KSEVENTDATA qui décrit comment l’objet KS doit notifier l’application lorsque l’événement se produit. Consultez également Événements KS.
  • Définissez IoControlsur IOCTL_KS_DISABLE_EVENT pour informer l’objet KS spécifié par Handle de cesser de notifier l’application chaque fois qu’une action d’événement spécifique se produit. Définissez InBuffer pour qu’il pointe vers la structure KSEVENTDATA précédemment utilisée dans la demande de notification d’événement.
Pour récupérer une liste de toutes les propriétés, événements ou méthodes pris en charge par un filtre, une application peut définir IoControl sur IOCTL_KS_PROPERTY, IOCTL_KS_ENABLE_EVENT ou IOCTL_KS_METHOD. Pour la structure KSPROPERTY, KSEVENT ou KSMETHOD sur laquelle pointe InBuffer , définissez le membre Set sur GUID_NULL et définissez le membre Flags sur KSPROPERTY_TYPE_SETSUPPORT.

Après l’appel à KsSynchronousDeviceControl, OutBuffer contiendra un tableau de GUID définis pris en charge par l’objet spécifié par Handle.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête ksproxy.h (inclure Ksproxy.h)
Bibliothèque Ksproxy.lib

Voir aussi

IKsObject ::KsGetObjectHandle

IOCTL_KS_DISABLE_EVENT

IOCTL_KS_ENABLE_EVENT

IOCTL_KS_METHOD

IOCTL_KS_PROPERTY

KSEVENT

KSEVENTDATA

KSMETHOD

KSPROPERTY