UsbBulkOutPipe UsbBulkOutPipe UsbBulkOutPipe UsbBulkOutPipe UsbBulkOutPipe Class


Represents the pipe that the underlying USB driver opens to communicate with a USB bulk OUT endpoint of the device. The object provides access to an output stream to which the app can write data to send to the endpoint.

public : sealed class UsbBulkOutPipe : IUsbBulkOutPipe
struct winrt::Windows::Devices::Usb::UsbBulkOutPipe : IUsbBulkOutPipe
public sealed class UsbBulkOutPipe : IUsbBulkOutPipe
Public NotInheritable Class UsbBulkOutPipe Implements IUsbBulkOutPipe
// This class does not provide a public constructor.
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)


EndpointDescriptor EndpointDescriptor EndpointDescriptor EndpointDescriptor EndpointDescriptor

Gets the object that represents the endpoint descriptor associated with the USB bulk OUT endpoint.

public : UsbBulkOutEndpointDescriptor EndpointDescriptor { get; }
UsbBulkOutEndpointDescriptor EndpointDescriptor();
public UsbBulkOutEndpointDescriptor EndpointDescriptor { get; }
Public ReadOnly Property EndpointDescriptor As UsbBulkOutEndpointDescriptor
var usbBulkOutEndpointDescriptor = usbBulkOutPipe.endpointDescriptor;
UsbBulkOutEndpointDescriptor UsbBulkOutEndpointDescriptor UsbBulkOutEndpointDescriptor

A UsbBulkOutEndpointDescriptor that represents the endpoint descriptor associated with the USB bulk OUT endpoint.

OutputStream OutputStream OutputStream OutputStream OutputStream

Gets an output stream to which the app can write data to send to the endpoint.

public : IOutputStream OutputStream { get; }
IOutputStream OutputStream();
public IOutputStream OutputStream { get; }
Public ReadOnly Property OutputStream As IOutputStream
var iOutputStream = usbBulkOutPipe.outputStream;
IOutputStream IOutputStream IOutputStream

The output steam that contains the transfer data.


To write data, first get the output stream from the pipe by using OutputStream property and then use the DataWriter object to write the actual buffer.

    Windows::Storage::Streams::Buffer^ buffer = ref new Windows::Storage::Streams::Buffer(TRANSFER_SIZE);  

    buffer->Length = TRANSFER_SIZE;  

    auto stream = DeviceList::Current->Fx2Device->Configuration->UsbInterfaces->GetAt(0)->BulkOutPipes->GetAt(0)->OutputStream;  

    Windows::Storage::Streams::DataWriter^ writer = ref new Windows::Storage::Streams::DataWriter(stream);  



WriteOptions WriteOptions WriteOptions WriteOptions WriteOptions

Gets or sets configuration flags that controls the behavior of the pipe that writes data to a USB bulk IN endpoint.

public : UsbWriteOptions WriteOptions { get; set; }
UsbWriteOptions WriteOptions(); void WriteOptions(UsbWriteOptions writeoptions);
public UsbWriteOptions WriteOptions { get; set; }
Public ReadWrite Property WriteOptions As UsbWriteOptions
var usbWriteOptions = usbBulkOutPipe.writeOptions;
usbBulkOutPipe.writeOptions = usbWriteOptions;
UsbWriteOptions UsbWriteOptions UsbWriteOptions

A UsbWriteOptions constant that indicates the pipe policy.


ClearStallAsync() ClearStallAsync() ClearStallAsync() ClearStallAsync() ClearStallAsync()

Starts an asynchronous operation to clear a stall condition (endpoint halt) on the USB bulk OUT endpoint that is associated with the pipe.

public : IAsyncAction ClearStallAsync()
IAsyncAction ClearStallAsync() const;
public IAsyncAction ClearStallAsync()
Public Function ClearStallAsync() As IAsyncAction
Windows.Devices.Usb.UsbBulkOutPipe.clearStallAsync().done( /* Your success and error handlers */ );

An IAsyncAction object that is used to control the asynchronous operation.