funzione WinUsb_WriteIsochPipeAsap (winusb.h)
Il WinUsb_WriteIsochPipeAsap invia una richiesta per scrivere il contenuto di un buffer in un endpoint OUT isochronous.
Sintassi
BOOL WinUsb_WriteIsochPipeAsap(
[in] WINUSB_ISOCH_BUFFER_HANDLE BufferHandle,
[in] ULONG Offset,
[in] ULONG Length,
[in] BOOL ContinueStream,
[in, optional] LPOVERLAPPED Overlapped
);
Parametri
[in] BufferHandle
Handle opaco al buffer di trasferimento registrato da una chiamata precedente a WinUsb_RegisterIsochBuffer.
[in] Offset
Offset nel buffer relativo all'avvio del trasferimento.
[in] Length
Lunghezza in byte del buffer di trasferimento.
[in] ContinueStream
Indica che il trasferimento deve essere inviato solo se può essere pianificato nel primo frame dopo l'ultimo trasferimento in sospeso.
[in, optional] Overlapped
Puntatore a una struttura OVERLAPPED usata per le operazioni asincrone.
Valore restituito
WinUsb_WriteIsochPipeAsap restituisce TRUE se l'operazione ha esito positivo. In caso contrario, questa funzione restituisce FALSE e il chiamante può recuperare l'errore registrato chiamando GetLastError.
Se il chiamante imposta ContinueStream su TRUE, il trasferimento ha esito negativo se Winusb.sys non è in grado di pianificare il trasferimento per continuare il flusso senza eliminare uno o più frame.
Commenti
WinUsb_WriteIsochPipeAsap consente allo stack di driver USB di scegliere il numero di frame iniziale per il trasferimento. Se uno o più trasferimenti sono già in sospeso nell'endpoint, il trasferimento verrà pianificato per il numero di frame immediatamente dopo l'ultimo numero di frame dell'ultimo trasferimento in sospeso.
WinUsb_WriteIsochPipeAsap pacchettizza il buffer di trasferimento in modo che in ogni intervallo di 1ms l'host possa inviare i byte massimi consentiti per intervallo. I byte massimi sono specificati dal descrittore dell'endpoint per gli endpoint completi e ad alta velocità e il descrittore complementare dell'endpoint per gli endpoint SuperSpeed. Se il chiamante invia più richieste di scrittura per trasmettere i dati al dispositivo, le dimensioni di trasferimento devono essere un multiplo dei byte massimi per intervallo (come restituito da WinUsb_QueryPipeEx) * 8/intervallo.
A causa del pacchetto di trasferimento usato nell'interfaccia in modalità kernel sottostante, la notifica di latenza più bassa a un'applicazione o a un driver è di 1ms intervalli.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8.1 |
Server minimo supportato | Windows Server 2012 R2 |
Piattaforma di destinazione | Universale |
Intestazione | winusb.h (include Winusb.h) |
Libreria | Winusb.lib |
DLL | Winusb.dll |
Vedi anche
Inviare trasferimenti USB isochronous da un'app desktop WinUSB