função WinUsb_ReadIsochPipeAsap (winusb.h)

A função WinUsb_ReadIsochPipeAsap envia uma solicitação que lê dados de um ponto de extremidade IN isócrono.

Sintaxe

BOOL WinUsb_ReadIsochPipeAsap(
  [in]           WINUSB_ISOCH_BUFFER_HANDLE  BufferHandle,
  [in]           ULONG                       Offset,
  [in]           ULONG                       Length,
  [in]           BOOL                        ContinueStream,
  [in]           ULONG                       NumberOfPackets,
                 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] ContinueStream

Indica que a transferência só deve ser enviada se puder ser agendada no primeiro quadro após a última transferência pendente.

[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.

IsoPacketDescriptors

Uma matriz de USBD_ISO_PACKET_DESCRIPTOR que recebe os detalhes de cada pacote isócrono na transferência.

[in, optional] Overlapped

Ponteiro para uma estrutura OVERLAPPED usada para operações assíncronas.

Retornar valor

WinUsb_ReadIsochPipeAsap 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.

Se o chamador definir ContinueStream como TRUE, a transferência falhará se Winusb.sys não puder agendar a transferência para continuar o fluxo sem descartar um ou mais quadros.

Comentários

WinUsb_ReadIsochPipeAsap permite que a pilha de driver USB escolha o número do quadro inicial para a transferência. Se uma ou mais transferências já estiverem pendentes no ponto de extremidade, a transferência será agendada para o número do quadro imediatamente após o último número de quadro da última transferência pendente no momento.

WinUsb_ReadIsochPipeAsap em pacote o buffer de transferência para que, em cada intervalo, o host possa receber o máximo de bytes permitidos por intervalo. O máximo de bytes é especificado 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 do máximo de bytes por intervalo (conforme retornado por WinUsb_QueryPipeEx) * 8 / intervalo.

Devido ao empacotamento de transferência usado na interface de modo kernel subjacente, a notificação de latência mais baixa para um aplicativo ou driver é de intervalos de 1 ms.

Requisitos

   
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 isócronas USB de um aplicativo da área de trabalho do WinUSB

Funções do WinUSB