Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133/* * PROJECT: ReactOS USB Hub Driver * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) * PURPOSE: USBHub debugging functions * COPYRIGHT: Copyright 2017 Vadim Galyant <vgal@rambler.ru> */
#include "usbhub.h"
#define NDEBUG#include <debug.h>
VOIDNTAPIUSBHUB_DumpingDeviceDescriptor(IN PUSB_DEVICE_DESCRIPTOR DeviceDescriptor){ if (!DeviceDescriptor) { return; }
DPRINT("Dumping Device Descriptor - %p\n", DeviceDescriptor); DPRINT("bLength - %x\n", DeviceDescriptor->bLength); DPRINT("bDescriptorType - %x\n", DeviceDescriptor->bDescriptorType); DPRINT("bcdUSB - %x\n", DeviceDescriptor->bcdUSB); DPRINT("bDeviceClass - %x\n", DeviceDescriptor->bDeviceClass); DPRINT("bDeviceSubClass - %x\n", DeviceDescriptor->bDeviceSubClass); DPRINT("bDeviceProtocol - %x\n", DeviceDescriptor->bDeviceProtocol); DPRINT("bMaxPacketSize0 - %x\n", DeviceDescriptor->bMaxPacketSize0); DPRINT("idVendor - %x\n", DeviceDescriptor->idVendor); DPRINT("idProduct - %x\n", DeviceDescriptor->idProduct); DPRINT("bcdDevice - %x\n", DeviceDescriptor->bcdDevice); DPRINT("iManufacturer - %x\n", DeviceDescriptor->iManufacturer); DPRINT("iProduct - %x\n", DeviceDescriptor->iProduct); DPRINT("iSerialNumber - %x\n", DeviceDescriptor->iSerialNumber); DPRINT("bNumConfigurations - %x\n", DeviceDescriptor->bNumConfigurations);}
VOIDNTAPIUSBHUB_DumpingConfiguration(IN PUSB_CONFIGURATION_DESCRIPTOR ConfigDescriptor){ PUSB_COMMON_DESCRIPTOR Descriptor; PUSB_CONFIGURATION_DESCRIPTOR cDescriptor; PUSB_INTERFACE_DESCRIPTOR iDescriptor; PUSB_ENDPOINT_DESCRIPTOR eDescriptor;
if (!ConfigDescriptor) { return; }
Descriptor = (PUSB_COMMON_DESCRIPTOR)ConfigDescriptor;
while ((ULONG_PTR)Descriptor < ((ULONG_PTR)ConfigDescriptor + ConfigDescriptor->wTotalLength) && Descriptor->bLength) { if (Descriptor->bDescriptorType == USB_CONFIGURATION_DESCRIPTOR_TYPE) { cDescriptor = (PUSB_CONFIGURATION_DESCRIPTOR)Descriptor;
DPRINT("Dumping cDescriptor - %p\n", cDescriptor); DPRINT("bLength - %x\n", cDescriptor->bLength); DPRINT("bDescriptorType - %x\n", cDescriptor->bDescriptorType); DPRINT("wTotalLength - %x\n", cDescriptor->wTotalLength); DPRINT("bNumInterfaces - %x\n", cDescriptor->bNumInterfaces); DPRINT("bConfigurationValue - %x\n", cDescriptor->bConfigurationValue); DPRINT("iConfiguration - %x\n", cDescriptor->iConfiguration); DPRINT("bmAttributes - %x\n", cDescriptor->bmAttributes); DPRINT("MaxPower - %x\n", cDescriptor->MaxPower); } else if (Descriptor->bDescriptorType == USB_INTERFACE_DESCRIPTOR_TYPE) { iDescriptor = (PUSB_INTERFACE_DESCRIPTOR)Descriptor;
DPRINT("Dumping iDescriptor - %p\n", iDescriptor); DPRINT("bLength - %x\n", iDescriptor->bLength); DPRINT("bDescriptorType - %x\n", iDescriptor->bDescriptorType); DPRINT("bInterfaceNumber - %x\n", iDescriptor->bInterfaceNumber); DPRINT("bAlternateSetting - %x\n", iDescriptor->bAlternateSetting); DPRINT("bNumEndpoints - %x\n", iDescriptor->bNumEndpoints); DPRINT("bInterfaceClass - %x\n", iDescriptor->bInterfaceClass); DPRINT("bInterfaceSubClass - %x\n", iDescriptor->bInterfaceSubClass); DPRINT("bInterfaceProtocol - %x\n", iDescriptor->bInterfaceProtocol); DPRINT("iInterface - %x\n", iDescriptor->iInterface); } else if (Descriptor->bDescriptorType == USB_ENDPOINT_DESCRIPTOR_TYPE) { eDescriptor = (PUSB_ENDPOINT_DESCRIPTOR)Descriptor;
DPRINT("Dumping Descriptor - %p\n", eDescriptor); DPRINT("bLength - %x\n", eDescriptor->bLength); DPRINT("bDescriptorType - %x\n", eDescriptor->bDescriptorType); DPRINT("bEndpointAddress - %x\n", eDescriptor->bEndpointAddress); DPRINT("bmAttributes - %x\n", eDescriptor->bmAttributes); DPRINT("wMaxPacketSize - %x\n", eDescriptor->wMaxPacketSize); DPRINT("bInterval - %x\n", eDescriptor->bInterval); } else { DPRINT("bDescriptorType - %x\n", Descriptor->bDescriptorType); }
Descriptor = (PUSB_COMMON_DESCRIPTOR)((ULONG_PTR)Descriptor + Descriptor->bLength); }}
VOIDNTAPIUSBHUB_DumpingIDs(IN PVOID Id){ PWSTR Ptr; size_t Length; size_t TotalLength = 0;
Ptr = Id; DPRINT("USBHUB_DumpingIDs:\n");
while (*Ptr) { DPRINT(" %S\n", Ptr); Length = wcslen(Ptr) + 1;
Ptr += Length; TotalLength += Length; }
DPRINT("TotalLength: %Iu\n", TotalLength); DPRINT("\n");}