101 UINT32 RequestId, UINT32 EndpointAddress, UINT32 TransferFlags,
102 UINT32 StartFrame, UINT32 ErrorCount, BOOL NoAck,
103 const BYTE* packetDescriptorData, UINT32 NumberOfPackets,
104 UINT32 BufferSize,
const BYTE* Buffer, t_isoch_transfer_cb cb,
107 BOOL(*control_transfer)
108 (IUDEVICE* idev, UINT32 RequestId, UINT32 EndpointAddress, UINT32 TransferFlags,
109 BYTE bmRequestType, BYTE Request, UINT16 Value, UINT16 Index, UINT32* UrbdStatus,
110 UINT32* BufferSize, BYTE* Buffer, UINT32 Timeout);
113 UINT32 MessageId, UINT32 RequestId, UINT32 EndpointAddress,
114 UINT32 TransferFlags, BOOL NoAck, UINT32 BufferSize,
115 const BYTE* data, t_isoch_transfer_cb cb, UINT32 Timeout);
117 int (*select_configuration)(IUDEVICE* idev, UINT32 bConfigurationValue);
119 int (*select_interface)(IUDEVICE* idev, BYTE InterfaceNumber, BYTE AlternateSetting);
121 int (*control_pipe_request)(IUDEVICE* idev, UINT32 RequestId, UINT32 EndpointAddress,
122 UINT32* UsbdStatus,
int command);
124 UINT32(*control_query_device_text)
125 (IUDEVICE* idev, UINT32 TextType, UINT16 LocaleId, UINT8* BufferSize, BYTE* Buffer);
127 int (*os_feature_descriptor_request)(IUDEVICE* idev, UINT32 RequestId, BYTE Recipient,
128 BYTE InterfaceNumber, BYTE Ms_PageIndex,
129 UINT16 Ms_featureDescIndex, UINT32* UsbdStatus,
130 UINT32* BufferSize, BYTE* Buffer, UINT32 Timeout);
132 void (*cancel_all_transfer_request)(IUDEVICE* idev);
134 int (*cancel_transfer_request)(IUDEVICE* idev, UINT32 RequestId);
136 int (*query_device_descriptor)(IUDEVICE* idev,
int offset);
138 BOOL (*detach_kernel_driver)(IUDEVICE* idev);
140 BOOL (*attach_kernel_driver)(IUDEVICE* idev);
142 int (*query_device_port_status)(IUDEVICE* idev, UINT32* UsbdStatus, UINT32* BufferSize,
148 int (*isCompositeDevice)(IUDEVICE* idev);
150 int (*isExist)(IUDEVICE* idev);
151 int (*isAlreadySend)(IUDEVICE* idev);
152 int (*isChannelClosed)(IUDEVICE* idev);
154 void (*setAlreadySend)(IUDEVICE* idev);
155 void (*setChannelClosed)(IUDEVICE* idev);
156 void (*markChannelClosed)(IUDEVICE* idev);
157 char* (*getPath)(IUDEVICE* idev);
159 void (*free)(IUDEVICE* idev);
161 BASIC_DEV_STATE_DEFINED(channelManager, IWTSVirtualChannelManager*);
162 BASIC_DEV_STATE_DEFINED(channelID, UINT32);
163 BASIC_DEV_STATE_DEFINED(UsbDevice, UINT32);
164 BASIC_DEV_STATE_DEFINED(ReqCompletion, UINT32);
165 BASIC_DEV_STATE_DEFINED(bus_number, BYTE);
166 BASIC_DEV_STATE_DEFINED(dev_number, BYTE);
167 BASIC_DEV_STATE_DEFINED(port_number, UINT8);
170 BASIC_DEV_STATE_DEFINED(p_udev,
void*);
171 BASIC_DEV_STATE_DEFINED(p_prev,
void*);
172 BASIC_DEV_STATE_DEFINED(p_next,
void*);
178 void (*free)(IUDEVMAN* idevman);
181 void (*rewind)(IUDEVMAN* idevman);
182 BOOL (*has_next)(IUDEVMAN* idevman);
183 BOOL (*unregister_udevice)(IUDEVMAN* idevman, BYTE bus_number, BYTE dev_number);
184 size_t (*register_udevice)(IUDEVMAN* idevman, BYTE bus_number, BYTE dev_number, UINT16 idVendor,
185 UINT16 idProduct, UINT32 flag);
186 IUDEVICE* (*get_next)(IUDEVMAN* idevman);
187 IUDEVICE* (*get_udevice_by_UsbDevice)(IUDEVMAN* idevman, UINT32 UsbDevice);
188 IUDEVICE* (*get_udevice_by_ChannelID)(IUDEVMAN* idevman, UINT32 channelID);
191 int (*isAutoAdd)(IUDEVMAN* idevman);
194 BASIC_DEVMAN_STATE_DEFINED(device_num, UINT32);
195 BASIC_DEVMAN_STATE_DEFINED(next_device_id, UINT32);
198 void (*loading_lock)(IUDEVMAN* idevman);
199 void (*loading_unlock)(IUDEVMAN* idevman);
200 BOOL (*initialize)(IUDEVMAN* idevman, UINT32 channelId);
201 UINT (*listener_created_callback)(IUDEVMAN* idevman);
204 UINT32 controlChannelId;