Condividi tramite


IOCTL_INTERNAL_USBFN_TRANSFER_IN_APPEND_ZERO_PKT IOCTL (usbfnioctl.h)

Il driver di classe invia questa richiesta per avviare un trasferimento IN alla pipe specificata e aggiunge un pacchetto a lunghezza zero per indicare la fine del trasferimento.

Codice principale

IRP_MJ_INTERNAL_DEVICE_CONTROL

Buffer di input

Puntatore a un tipo USBFNPIPEID che specifica l'ID della pipe.

Lunghezza del buffer di input

Dimensioni di un tipo USBFNPIPEID .

Buffer di output

Il buffer di output punta a un buffer di dati contenente i dati da inviare. La direzione IN è dal punto di vista dell'host che rappresenta un trasferimento in uscita dal dispositivo all'host.

Lunghezza del buffer di output

Dimensioni dei dati da inviare.

Blocco dello stato

Se la richiesta ha esito positivo, l'estensione della classe di funzione USB (UFX) restituisce STATUS_SUCCESS o un altro valore di stato per cui NT_SUCCESS(stato) è TRUE. In caso contrario, restituisce un valore di stato per il quale NT_SUCCESS(stato) corrisponde a FALSE.

Commenti

Questa richiesta deve essere inviata dopo l'invio della richiesta di IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS .

UFX inoltra questa richiesta IOCTL alla coda di trasferimento creata per l'endpoint da UfxEndpointCreate.

Il controller di funzione avvia un trasferimento nella direzione IN sull'endpoint e aggiunge automaticamente un trasferimento di pacchetti a lunghezza zero dopo che i dati forniti nel buffer di dati vengono inviati correttamente. Un pacchetto a lunghezza zero viene aggiunto solo dal controller se le dimensioni del payload di trasferimento sono più delle dimensioni massime del pacchetto dell'endpoint.

Requisiti

Requisito Valore
Intestazione usbfnioctl.h