Condividi tramite


Metodo IWMDMDevice3::D eviceIoControl (mswmdm.h)

Il metodo DeviceIoControl invia un codice I/O Control (IOCTL) al dispositivo. Si tratta di un metodo pass-through; Windows Media Gestione dispositivi inoltra semplicemente la chiamata al provider di servizi dopo aver convalidato i parametri.

Sintassi

HRESULT DeviceIoControl(
  [in]      DWORD   dwIoControlCode,
  [in]      BYTE    *lpInBuffer,
  [in]      DWORD   nInBufferSize,
  [out]     BYTE    *lpOutBuffer,
  [in, out] LPDWORD pnOutBufferSize
);

Parametri

[in] dwIoControlCode

Controllare il codice da inviare al dispositivo. Quando si chiama questo metodo in un dispositivo MTP, usare il valore IOCTL_MTP_CUSTOM_COMMAND definito in MtpExt.h incluso nell'SDK.

[in] lpInBuffer

Puntatore facoltativo a un buffer di input fornito dal chiamante. Può essere NULL se nInBufferSize è zero. Quando si chiama questo metodo in un dispositivo MTP, è possibile passare la struttura MTP_COMMAND_DATA_IN .

[in] nInBufferSize

Dimensioni del buffer di input, in byte. Quando si chiama questo metodo in un dispositivo MTP, è possibile usare la macro SIZEOF_REQUIRED_COMMAND_DATA_IN per specificare le dimensioni.

[out] lpOutBuffer

Puntatore facoltativo al buffer di output fornito dal chiamante. Può essere NULL se pnOutBufferSize punta a un valore pari a zero. Quando si chiama questo metodo in un dispositivo MTP, è possibile passare la struttura MTP_COMMAND_DATA_OUT .

[in, out] pnOutBufferSize

Dimensioni del buffer di output, in byte. Quando la chiamata viene restituita, specifica il numero di byte effettivamente restituiti. Quando si chiama questo metodo in un dispositivo MTP, è possibile usare la macro SIZEOF_REQUIRED_COMMAND_DATA_OUT definita in MtpExt.h per specificare le dimensioni. Questo parametro non può essere NULL.

Valore restituito

Il metodo restituisce un valore HRESULT. Tutti i metodi di interfaccia in Windows Media Gestione dispositivi possono restituire una delle classi di codici di errore seguenti:

  • Codici di errore COM standard
  • Codici di errore di Windows convertiti in valori HRESULT
  • Codici di errore di Windows Media Gestione dispositivi
Per un elenco completo dei codici di errore possibili, vedere Codici di errore.

Commenti

Questo metodo fornisce una modalità privata di comunicazione tra l'applicazione e il provider di servizi. Il provider di servizi può quindi elaborare questo IOCTL, facoltativamente modificarlo e passarlo al driver in modalità kernel.

Rispetto a IWMDMDevice::SendOpaqueCommand, questo metodo è più allineato con l'API Windows DeviceIoControl perché il buffer di output viene fornito dal chiamante. Inoltre, a differenza di IWMDMDevice::SendOpaqueCommand, questo metodo non comporta alcun controllo MAC ed è più efficiente.

Questo metodo può essere usato, ad esempio, per inviare comandi MTP (Media Transport Protocol) personalizzati a un dispositivo MTP.

Requisiti

   
Piattaforma di destinazione Windows
Intestazione mswmdm.h
Libreria Mssachlp.lib

Vedi anche

Interfaccia IWMDMDevice3

IWMDMDevice::SendOpaqueCommand