Condividi tramite


Macro UsbBuildInterruptOrBulkTransferRequest (usbdlib.h)

La macro UsbBuildInterruptOrBulkTransferRequest formatta una macro URB per inviare o ricevere dati in una pipe bulk o per ricevere dati da una pipe di interruzione.

Sintassi

void UsbBuildInterruptOrBulkTransferRequest(
  [in, out]       urb,
  [in]            length,
  [in]            pipeHandle,
  [in, optional]  transferBuffer,
  [in, optional]  transferBufferMDL,
  [in]            transferBufferLength,
  [in]            transferFlags,
  [in]            link
);

Parametri

[in, out] urb

Puntatore a un OGGETTO URB da formattare come richiesta di interruzione o trasferimento bulk.

[in] length

Specifica le dimensioni, in byte, dell'ENTITÀ.

[in] pipeHandle

Specifica l'handle per questa pipe restituita dal file HCD quando è stata selezionata una configurazione.

[in, optional] transferBuffer

Puntatore a un buffer residente per il trasferimento o null se viene fornito un MDL in TransferBufferMDL. Il contenuto di questo buffer dipende dal valore di TransferFlags. Se viene specificato USBD_TRANSFER_DIRECTION_IN, questo buffer conterrà i dati letti dal dispositivo restituito dal file HCD. In caso contrario, questo buffer contiene dati forniti dal driver da trasferire nel dispositivo.

[in, optional] transferBufferMDL

Puntatore a un MDL che descrive un buffer residente o è NULL se viene fornito un buffer in TransferBuffer. Il contenuto del buffer dipende dal valore di TransferFlags. Se viene specificato USBD_TRANSFER_DIRECTION_IN, il buffer descritto conterrà i dati letti dal dispositivo restituito dal modulo HCD. In caso contrario, il buffer contiene dati forniti dal driver da trasferire nel dispositivo. L'MDL deve essere allocato dal pool non a pagina.

[in] transferBufferLength

Specifica la lunghezza, in byte, del buffer specificato in TransferBuffer o descritto in TransferBufferMDL.

[in] transferFlags

Specifica zero, uno o una combinazione dei flag seguenti:

USBD_TRANSFER_DIRECTION_IN

È impostato per richiedere i dati da un dispositivo. Per trasferire i dati in un dispositivo, questo flag deve essere chiaro.

USBD_SHORT_TRANSFER_OK

Può essere usato se USBD_TRANSFER_DIRECTION_IN è impostato. Se impostato, indirizza l'HCD non a restituire un errore se un pacchetto viene ricevuto dal dispositivo che è più breve rispetto alle dimensioni massime del pacchetto per l'endpoint. In caso contrario, una richiesta breve restituisce una condizione di errore.

[in] link

Riservato. Deve essere impostato su NULL.

Valore restituito

nessuno

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione usbdlib.h (includono Usbdlib.h)

Vedi anche

URB

Informazioni di riferimento sulla programmazione del driver di dispositivo USB

USB_DEVICE_DESCRIPTOR