Expand Minimize

WinUsb_RegisterIsochBuffer routine

The WinUsb_RegisterIsochBuffer function registers a buffer to be used for isochronous transfers.


BOOL __stdcall WinUsb_RegisterIsochBuffer(
  _In_   WINUSB_INTERFACE_HANDLE  InterfaceHandle,
  _In_   UCHAR  PipeID,
  _In_   PVOID  Buffer,
  _In_   ULONG  BufferLength,


InterfaceHandle [in]

An opaque handle to an interface in the selected configuration. That handle must be created by a previous call to WinUsb_Initialize or WinUsb_GetAssociatedInterface.

PipeID [in]

Derived from Bit 3...0 of the bEndpointAddress field in the endpoint descriptor.

Buffer [in]

Pointer to the transfer buffer to be registered.

BufferLength [in]

Length, in bytes, of the transfer buffer pointed to by Buffer.

BufferHandle [out]

Receives an opaque handle to the registered buffer. This handle is required by other WinUSB functions that perform isochronous transfers. To release the handle, call the WinUsb_UnregisterIsochBuffer function.

Return value

WinUsb_RegisterIsochBuffer returns TRUE if the operation succeeds. Otherwise this function returns FALSE, and the caller can retrieve the logged error by calling GetLastError.

If the caller sets ContinueStream to TRUE, The transfer fails if Winusb.sys is unable to schedule the transfer to continue the stream without dropping one or more frames.


Prior to initiating isochronous transfers to or from a buffer, the caller must register the buffer with WinUsb_RegisterIsochBuffer. This call allows the Winusb.sys to pre-map and lock the buffer after for all subsequent transfers using the buffer.


Minimum supported client

Windows 8.1

Minimum supported server

Windows Server 2012 R2


Winusb.h (include Winusb.h)



See also

WinUSB Functions
Send USB isochronous transfers from a WinUSB desktop app



Send comments about this topic to Microsoft

© 2014 Microsoft. All rights reserved.