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 |