#ifndef USBEHCI_H__
#define USBEHCI_H__
-#include <ntddk.h>
-#define NDEBUG
-#include <debug.h>
-#include <initguid.h>
+#include <wdm.h>
#include <hubbusif.h>
#include <usbbusif.h>
-#include <usbioctl.h>
#include <usbdlib.h>
-//
-// FIXME:
-// #include <usbprotocoldefs.h>
-//
-#include <usb.h>
#include <stdio.h>
-#include <wdmguid.h>
typedef struct
{
- BOOLEAN IsFDO; // is device a FDO or PDO
+ BOOLEAN IsFDO; // is device a FDO or PDO
}COMMON_DEVICE_EXTENSION, *PCOMMON_DEVICE_EXTENSION;
typedef struct
USBD_CONFIGURATION_HANDLE ConfigurationHandle; // configuration handle
PUSBD_INTERFACE_LIST_ENTRY InterfaceList; // interface list
ULONG InterfaceListCount; // interface list count
- PFDO_DEVICE_EXTENSION FDODeviceExtension; // pointer to fdo's pdo list
+ PFDO_DEVICE_EXTENSION FDODeviceExtension; // pointer to fdo's pdo list
}PDO_DEVICE_EXTENSION, *PPDO_DEVICE_EXTENSION;
/* descriptor.c */
+VOID
+DumpConfigurationDescriptor(
+ IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor);
+
NTSTATUS
USBCCGP_GetDescriptors(
IN PDEVICE_OBJECT DeviceObject);
IN LANGID LanguageId,
OUT PVOID *OutDescriptor);
+NTSTATUS
+NTAPI
+USBCCGP_GetStringDescriptor(
+ IN PDEVICE_OBJECT DeviceObject,
+ IN ULONG DescriptorLength,
+ IN UCHAR DescriptorIndex,
+ IN LANGID LanguageId,
+ OUT PVOID *OutDescriptor);
+
ULONG
CountInterfaceDescriptors(
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor);
/* misc.c */
-NTSTATUS
-NTAPI
-USBCCGP_SyncForwardIrp(
- PDEVICE_OBJECT DeviceObject,
- PIRP Irp);
-
NTSTATUS
USBCCGP_SyncUrbRequest(
IN PDEVICE_OBJECT DeviceObject,
NTSTATUS
FDO_Dispatch(
- PDEVICE_OBJECT DeviceObject,
+ PDEVICE_OBJECT DeviceObject,
PIRP Irp);
/* pdo.c */
NTSTATUS
PDO_Dispatch(
- PDEVICE_OBJECT DeviceObject,
+ PDEVICE_OBJECT DeviceObject,
PIRP Irp);
/* function.c */
USBCCGP_EnumerateFunctions(
IN PDEVICE_OBJECT DeviceObject);
-#endif
+#endif /* USBEHCI_H__ */