Partager via


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
Pour obtenir une liste complète des codes d’erreur possibles, consultez Codes d’erreur.

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

Voir aussi

IWMDMDevice3, interface

IWMDMDevice::SendOpaqueCommand