共用方式為


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 方法,向 USB 函式類別延伸模組 (UFX) 註冊其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