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 |