EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD回调函数 (ufxclient.h)

用于创建默认控制终结点的客户端驱动程序实现。

语法

EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD EvtUfxDeviceDefaultEndpointAdd;

void EvtUfxDeviceDefaultEndpointAdd(
  [in]      UFXDEVICE unnamedParam1,
  [in]      USHORT unnamedParam2,
  [in, out] PUFXENDPOINT_INIT unnamedParam3
)
{...}

参数

[in] unnamedParam1

客户端驱动程序在上一次调用 UfxDeviceCreate 时收到的 USB 设备对象的句柄。

[in] unnamedParam2

可以从或发送到此终结点的默认最大数据包大小。

[in, out] unnamedParam3

指向UFXENDPOINT_INIT不透明结构的指针,该结构包含创建终结点对象所需的终结点描述符。

返回值

备注

函数主机控制器的客户端驱动程序通过调用 UfxDeviceCreate 方法向 UFX) (USB 函数类扩展注册其EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD实现。

若要创建终结点,客户端驱动程序应初始化终结点的传输和命令队列的属性,然后调用 UfxEndpointCreate 来创建终结点。 创建默认控制终结点后,UFX 即可处理来自主机的设置数据包和其他控制传输数据包。

客户端驱动程序通过调用 UfxDeviceEventComplete 方法指示此事件的完成。

示例


EVT_UFX_DEVICE_DEFAULT_ENDPOINT_ADD UfxDevice_EvtDeviceDefaultEndpointAdd;

VOID
UfxDevice_EvtDeviceDefaultEndpointAdd (
    _In_ UFXDEVICE UfxDevice,
    _In_ USHORT MaxPacketSize,
    _Inout_ PUFXENDPOINT_INIT EndpointInit
    )
/*++

Routine Description:

    EvtDeviceDefaultEndpointAdd handler for the UFXDEVICE object.
    Creates UFXENDPOINT object corresponding to the default endpoint of the
    device.

Arguments:

    UfxDevice - UFXDEVICE object representing the device.

    MaxPacketSize - Max packet size of the device's default endpoint.

    EndpointInit - Pointer to the Opaque UFXENDPOINT_INIT object

--*/
{
    NTSTATUS Status;
    USB_ENDPOINT_DESCRIPTOR Descriptor;

    PAGED_CODE();

    TraceEntry();

    Descriptor.bDescriptorType = USB_ENDPOINT_DESCRIPTOR_TYPE;
    Descriptor.bEndpointAddress = 0;
    Descriptor.bInterval = 0;
    Descriptor.bLength = sizeof(USB_ENDPOINT_DESCRIPTOR);
    Descriptor.bmAttributes = USB_ENDPOINT_TYPE_CONTROL;
    Descriptor.wMaxPacketSize = MaxPacketSize;

    // #### TODO: Insert code to add the endpoint. 
    // See code example for EVT_UFX_DEVICE_ENDPOINT_ADD ####

End:
    UfxDeviceEventComplete(UfxDevice, Status);
    TraceExit();
}

要求

要求
目标平台 Windows
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 ufxclient.h
IRQL PASSIVE_LEVEL

另请参阅

UfxDeviceCreate

UfxDeviceEventComplete