IWMDMDevice3::D eviceIoControl, méthode (mswmdm.h)
La méthode DeviceIoControl envoie un code IOCTL (Device I/O Control) à l’appareil. Il s’agit d’une méthode directe ; Windows Media Gestionnaire de périphériques transfère simplement l’appel au fournisseur de services après avoir validé les paramètres.
Syntaxe
HRESULT DeviceIoControl(
[in] DWORD dwIoControlCode,
[in] BYTE *lpInBuffer,
[in] DWORD nInBufferSize,
[out] BYTE *lpOutBuffer,
[in, out] LPDWORD pnOutBufferSize
);
Paramètres
[in] dwIoControlCode
Code de contrôle à envoyer à l’appareil. Lorsque vous appelez cette méthode sur un appareil MTP, utilisez la valeur IOCTL_MTP_CUSTOM_COMMAND définie dans MtpExt.h inclus dans le KIT de développement logiciel (SDK).
[in] lpInBuffer
Pointeur facultatif vers une mémoire tampon d’entrée fournie par l’appelant. Elle peut être NULL si nInBufferSize est égal à zéro. Lorsque vous appelez cette méthode sur un appareil MTP, vous pouvez passer la structure MTP_COMMAND_DATA_IN .
[in] nInBufferSize
Taille de la mémoire tampon d’entrée, en octets. Lorsque vous appelez cette méthode sur un appareil MTP, vous pouvez utiliser la macro SIZEOF_REQUIRED_COMMAND_DATA_IN pour spécifier la taille.
[out] lpOutBuffer
Pointeur facultatif vers la mémoire tampon de sortie fournie par l’appelant. Elle peut être NULL si pnOutBufferSize pointe vers une valeur de zéro. Lorsque vous appelez cette méthode sur un appareil MTP, vous pouvez transmettre la structure MTP_COMMAND_DATA_OUT .
[in, out] pnOutBufferSize
Taille de la mémoire tampon de sortie, en octets. Lorsque l’appel est retourné, il spécifie le nombre d’octets réellement retournés. Lorsque vous appelez cette méthode sur un appareil MTP, vous pouvez utiliser la macro SIZEOF_REQUIRED_COMMAND_DATA_OUT définie dans MtpExt.h pour spécifier la taille. Ce paramètre ne peut pas être NULL.
Valeur retournée
Cette méthode retourne un code HRESULT. Toutes les méthodes d’interface dans Windows Media Gestionnaire de périphériques peuvent retourner l’une des classes suivantes de codes d’erreur :
- Codes d’erreur COM standard
- Codes d’erreur Windows convertis en valeurs HRESULT
- Codes d’erreur Gestionnaire de périphériques Windows Media
Notes
Cette méthode fournit un mode privé de communication entre l’application et le fournisseur de services. Le fournisseur de services peut ensuite traiter ce IOCTL, le modifier éventuellement et le passer au pilote en mode noyau.
Par rapport à IWMDMDevice::SendOpaqueCommand, cette méthode s’aligne mieux avec l’API Windows DeviceIoControl , car la mémoire tampon de sortie est fournie par l’appelant. En outre, contrairement à IWMDMDevice::SendOpaqueCommand, cette méthode n’implique aucune case activée MAC et est plus efficace.
Cette méthode peut être utilisée, par exemple, pour envoyer des commandes MTP (Media Transport Protocol) personnalisées à un appareil MTP.
Configuration requise
Plateforme cible | Windows |
En-tête | mswmdm.h |
Bibliothèque | Mssachlp.lib |