função WinUsb_ReadIsochPipe (winusb.h)
A função WinUsb_ReadIsochPipe lê dados de um ponto de extremidade IN isócrono.
Sintaxe
BOOL WinUsb_ReadIsochPipe(
[in] WINUSB_ISOCH_BUFFER_HANDLE BufferHandle,
[in] ULONG Offset,
[in] ULONG Length,
[in, out] PULONG FrameNumber,
[in] ULONG NumberOfPackets,
[out] PUSBD_ISO_PACKET_DESCRIPTOR IsoPacketDescriptors,
[in, optional] LPOVERLAPPED Overlapped
);
Parâmetros
[in] BufferHandle
Um identificador opaco para o buffer de transferência que foi registrado por uma chamada anterior para WinUsb_RegisterIsochBuffer.
[in] Offset
Deslocamento para o buffer em relação ao início da transferência.
[in] Length
Comprimento em bytes do buffer de transferência.
[in, out] FrameNumber
Na entrada, indica o número do quadro inicial para a transferência. Na saída, contém o número do quadro que segue o último quadro usado na transferência.
[in] NumberOfPackets
Número total de pacotes isócronos necessários para manter o buffer de transferência. Também indica o número de elementos na matriz apontada por IsoPacketDescriptors.
[out] IsoPacketDescriptors
Uma matriz de estruturas de USBD_ISO_PACKET_DESCRIPTOR . Após a conclusão da transferência, cada elemento contém o status e o tamanho do pacote isocrono.
[in, optional] Overlapped
Ponteiro para uma estrutura OVERLAPPED usada para operações assíncronas.
Retornar valor
WinUsb_ReadIsochPipe retornará TRUE se a operação for bem-sucedida. Caso contrário, essa função retornará FALSE e o chamador poderá recuperar o erro registrado chamando GetLastError.
Comentários
WinUsb_ReadIsochPipe em pacotes o buffer de transferência para que, em cada intervalo de 1ms, o host possa receber o máximo de bytes permitidos por intervalo. Os bytes máximos são especificados pelo descritor de ponto de extremidade para pontos de extremidade completos e de alta velocidade e o descritor complementar de ponto de extremidade para pontos de extremidade SuperSpeed. Se o chamador enviar várias solicitações de leitura para transmitir dados do dispositivo, o tamanho da transferência deverá ser um múltiplo dos bytes máximos por intervalo (conforme retornado por WinUsb_QueryPipeEx) * 8 /interval.
Devido ao empacotamento de transferência usado na interface subjacente do modo kernel, a notificação de latência mais baixa para um aplicativo ou driver é de intervalos de 1ms.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8.1 |
Servidor mínimo com suporte | Windows Server 2012 R2 |
Plataforma de Destino | Universal |
Cabeçalho | winusb.h (inclua Winusb.h) |
Biblioteca | Winusb.lib |
DLL | Winusb.dll |
Confira também
Enviar transferências isocronas USB de um aplicativo da área de trabalho do WinUSB