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