Share via


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

Funções do WinUSB