Partager via


KsSynchronousDeviceControl, fonction (ksproxy.h)

La fonction KsSynchronousDeviceControl émet une opération de contrôle d’E/S d’appareil synchrone à 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 d’opération spécifique à 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 à InBuffer .

[out, optional] OutBuffer

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

[in] OutLength

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

[in, out] BytesReturned

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

Valeur de retour

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 à InBuffer et OutBuffer comme suit pour spécifier l’opération à effectuer :

  • Définissez IoControl sur IOCTL_KS_PROPERTY pour accéder à une propriété. Définissez InBuffer pour pointer vers une structure KSPROPERTY qui spécifie la propriété définie pour accéder à la propriété et 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 pointer vers ces informations. Pour récupérer des informations à partir de la propriété, définissez OutBuffer pour recevoir ces informations.
  • Définissez IoControl sur IOCTL_KS_METHOD pour exécuter une méthode. Définissez InBuffer pour pointer vers une structure KSMETHOD qui spécifie la méthode définie pour s’exécuter et s’il faut lire et/ou écrire des données associées à la méthode. Pour lire des données, définissez OutBuffer pour pointer vers ces données. Pour écrire des données, définissez OutBuffer pour recevoir ces données.
  • Définissez IoControl sur IOCTL_KS_ENABLE_EVENT pour demander que l’objet KS spécifié par Handle notifier l’application chaque fois qu’une action d’événement spécifique se produit. Définissez InBuffer pour pointer vers une structure KSEVENT qui spécifie l’événement de l’événement à 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 IoControl sur IOCTL_KS_DISABLE_EVENT pour informer l’objet KS spécifié par Handle pour arrêter de notifier l’application chaque fois qu’une action d’événement spécifique se produit. Définissez InBuffer pour pointer vers la structure KSEVENTDATA précédemment utilisée dans la demande de notification d’événement.
Pour récupérer la 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 points InBuffer, définissez le membre Définir sur GUID_NULL et définissez le membre indicateurs de 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.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête ksproxy.h (include 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