Condividi tramite


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

Funzioni WinUSB