AdbInterfaceObject ::GetUsbDeviceDescriptor
2014-10-16 10:32
483 查看
作者微信:15013593099
欢迎交流
bool AdbInterfaceObject::GetUsbDeviceDescriptor(USB_DEVICE_DESCRIPTOR* desc) {
if (!IsOpened()) {
SetLastError(ERROR_INVALID_HANDLE);
return false;
}
if (NULL == desc) {
SetLastError(ERROR_INVALID_PARAMETER);
return false;
}
CopyMemory(desc, usb_device_descriptor(), sizeof(USB_DEVICE_DESCRIPTOR));
return true;
}
const USB_DEVICE_DESCRIPTOR* usb_device_descriptor() const {
return &usb_device_descriptor_;
}
bool AdbLegacyInterfaceObject::CacheUsbDeviceDescriptor(
HANDLE usb_device_handle) {
DWORD ret_bytes = 0;
BOOL ret = DeviceIoControl(usb_device_handle,
ADB_IOCTL_GET_USB_DEVICE_DESCRIPTOR,
NULL, 0,
&usb_device_descriptor_,
sizeof(usb_device_descriptor_),
&ret_bytes,
NULL);
ATLASSERT(!ret || (sizeof(USB_DEVICE_DESCRIPTOR) == ret_bytes));
return ret ? true : false;
}
bool AdbLegacyInterfaceObject::CacheUsbInterfaceDescriptor(
HANDLE usb_device_handle) {
DWORD ret_bytes = 0;
BOOL ret = DeviceIoControl(usb_device_handle,
ADB_IOCTL_GET_USB_INTERFACE_DESCRIPTOR,
NULL, 0,
&usb_interface_descriptor_,
sizeof(usb_interface_descriptor_),
&ret_bytes,
NULL);
ATLASSERT(!ret || (sizeof(USB_INTERFACE_DESCRIPTOR) == ret_bytes));
return ret ? true : false;
}
#define ADB_IOCTL_GET_USB_DEVICE_DESCRIPTOR \
CTL_CODE(FILE_DEVICE_UNKNOWN, \
ADB_CTL_GET_USB_DEVICE_DESCRIPTOR, \
METHOD_BUFFERED, \
FILE_READ_ACCESS)
#define ADB_CTL_GET_USB_DEVICE_DESCRIPTOR 10
欢迎交流
bool AdbInterfaceObject::GetUsbDeviceDescriptor(USB_DEVICE_DESCRIPTOR* desc) {
if (!IsOpened()) {
SetLastError(ERROR_INVALID_HANDLE);
return false;
}
if (NULL == desc) {
SetLastError(ERROR_INVALID_PARAMETER);
return false;
}
CopyMemory(desc, usb_device_descriptor(), sizeof(USB_DEVICE_DESCRIPTOR));
return true;
}
const USB_DEVICE_DESCRIPTOR* usb_device_descriptor() const {
return &usb_device_descriptor_;
}
bool AdbLegacyInterfaceObject::CacheUsbDeviceDescriptor(
HANDLE usb_device_handle) {
DWORD ret_bytes = 0;
BOOL ret = DeviceIoControl(usb_device_handle,
ADB_IOCTL_GET_USB_DEVICE_DESCRIPTOR,
NULL, 0,
&usb_device_descriptor_,
sizeof(usb_device_descriptor_),
&ret_bytes,
NULL);
ATLASSERT(!ret || (sizeof(USB_DEVICE_DESCRIPTOR) == ret_bytes));
return ret ? true : false;
}
bool AdbLegacyInterfaceObject::CacheUsbInterfaceDescriptor(
HANDLE usb_device_handle) {
DWORD ret_bytes = 0;
BOOL ret = DeviceIoControl(usb_device_handle,
ADB_IOCTL_GET_USB_INTERFACE_DESCRIPTOR,
NULL, 0,
&usb_interface_descriptor_,
sizeof(usb_interface_descriptor_),
&ret_bytes,
NULL);
ATLASSERT(!ret || (sizeof(USB_INTERFACE_DESCRIPTOR) == ret_bytes));
return ret ? true : false;
}
#define ADB_IOCTL_GET_USB_DEVICE_DESCRIPTOR \
CTL_CODE(FILE_DEVICE_UNKNOWN, \
ADB_CTL_GET_USB_DEVICE_DESCRIPTOR, \
METHOD_BUFFERED, \
FILE_READ_ACCESS)
#define ADB_CTL_GET_USB_DEVICE_DESCRIPTOR 10
相关文章推荐
- Usb Audio Device Descriptor(6) Standard AS Interface Descriptor
- Usb Audio Device Descriptor(7) Class-Specific Audio Streaming Interface Descriptor
- usb_get_device_descriptor()
- Usb Audio Device Descriptor(1) Standard Audio Control Interface Descriptor
- Usb Audio Device Descriptor(2) Class-Specific Audio Control Interface Header Descriptor
- USB Config Descriptor -> Interface/Endpoint Descriptor
- Usb Audio Device Descriptor(3) Input Terminal Descriptor
- Usb Audio Device Descriptor(10) Hid Device
- USB组合设备 Interface Association Descriptor (IAD)
- USB Device Descriptor for AMP Controller
- Andriod ADB Interface驱动安装失败Configure USB Debug for Android
- USB Human Interface Device (HID) Configuration
- Analysis of undocumented Windows function NhGetInterfaceNameFromDeviceGuid
- 今天在linux下连接平板usb,试用adb shell时出现error: insufficient permissions for device, 而且我们输入adb devices显示: xx
- 如何Get到roothub的usb device struct
- interface_to_usbdev() -- 根据usb_interface指针intf获取usb_device的地址。
- ADB检测不到USB device
- Usb Audio Device Descriptor(8) Type I Format Type Descriptor
- Usb Composite Device (audio+hid) Descriptor
- USB组合设备 Interface Association Descriptor (IAD)