WinUsb_ReadIsochPipe函式 (winusb.h)
WinUsb_ReadIsochPipe函式會從不時點 IN 端點讀取數據。
語法
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
);
參數
[in] BufferHandle
先前呼叫 WinUsb_RegisterIsochBuffer所註冊之傳輸緩衝區的不透明句柄。
[in] Offset
相對於開始傳輸的緩衝區位移。
[in] Length
傳輸緩衝區的位元組長度。
[in, out] FrameNumber
在輸入時,表示傳輸的起始畫面編號。 在輸出中,包含傳輸中最後一個畫面後面所使用框架的框架編號。
[in] NumberOfPackets
保存傳輸緩衝區所需的等時封包總數。 也表示 IsoPacketDescriptors 指向之陣列中的項目數目。
[out] IsoPacketDescriptors
USBD_ISO_PACKET_DESCRIPTOR 結構的陣列。 傳輸完成之後,每個元素都包含等時封包的狀態和大小。
[in, optional] Overlapped
用於異步操作之 重疊 結構的指標。
傳回值
如果作業成功,WinUsb_ReadIsochPipe會傳回 TRUE。 否則,此函式會傳回 FALSE,而且呼叫端可以呼叫 GetLastError 來擷取記錄的錯誤。
備註
WinUsb_ReadIsochPipe 封包處理傳輸緩衝區,以便在每 1 毫秒間隔內,主機可以接收每個間隔允許的最大位元組。 最大位元組是由完整和高速端點的端點描述項所指定,而 SuperSpeed 端點的端點隨附描述項則指定。 如果呼叫端提交多個讀取要求以從裝置串流數據,則傳輸大小應該是每個間隔的最大位元組數 (的倍數,如 WinUsb_QueryPipeEx) * 8 / interval 所傳回。
由於基礎核心模式介面中使用的傳輸封裝,應用程式或驅動程式的最低延遲通知間隔為 1 毫秒。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8.1 |
最低支援的伺服器 | Windows Server 2012 R2 |
目標平台 | Universal |
標頭 | winusb.h (包含 Winusb.h) |
程式庫 | Winusb.lib |
Dll | Winusb.dll |