IOCTL_INTERNAL_USBFN_TRANSFER_IN_APPEND_ZERO_PKT IOCTL (usbfnioctl.h)
The class driver sends this request to initiate an IN transfer to the specified pipe and appends a zero-length packet to indicate the end of the transfer.
Major code
IRP_MJ_INTERNAL_DEVICE_CONTROL
Input buffer
A pointer to a USBFNPIPEID type that specifies the pipe ID.
Input buffer length
The size of a USBFNPIPEID type.
Output buffer
The output buffer points to a data buffer containing the data to be sent. The IN direction is from the host perspective representing an outbound transfer from the device to the host.
Output buffer length
The size of the data to be sent.
Status block
If the request is successful, the USB function class extension (UFX) returns STATUS_SUCCESS, or another status value for which NT_SUCCESS(status) equals TRUE. Otherwise it returns a status value for which NT_SUCCESS(status) equals FALSE.
Remarks
This request must be sent after sending the IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS request.
UFX forwards this IOCTL request to the transfer queue created for the endpoint by UfxEndpointCreate.
The function controller initiates a transfer in the IN direction on the endpoint and automatically appends a zero-length packet transfer after the data provided in the data buffer is successfully sent. A zero-length packet is only appended by the controller if the size of the transfer payload is a multiple of the endpoint’s maximum packet size.
Requirements
Requirement | Value |
---|---|
Header | usbfnioctl.h |