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