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