More work on USB related definitions
authorAmine Khaldi <amine.khaldi@reactos.org>
Fri, 5 Mar 2010 01:12:11 +0000 (01:12 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Fri, 5 Mar 2010 01:12:11 +0000 (01:12 +0000)
svn path=/branches/header-work/; revision=45856

include/psdk/usbrpmif.h [new file with mode: 0644]

diff --git a/include/psdk/usbrpmif.h b/include/psdk/usbrpmif.h
new file mode 100644 (file)
index 0000000..c6ee0c4
--- /dev/null
@@ -0,0 +1,64 @@
+#pragma once
+
+#include "windef.h"
+#include "usb100.h"
+
+#if !defined(_USBRPM_DRIVER_)
+#define USBRPMAPI DECLSPEC_IMPORT
+#else
+#define USBRPMAPI
+#endif
+
+typedef struct _USBRPM_DEVICE_INFORMATION {
+  ULONG64 HubId;
+  ULONG ConnectionIndex;
+  UCHAR DeviceClass;
+  USHORT VendorId;
+  USHORT ProductId;
+  WCHAR ManufacturerString[MAXIMUM_USB_STRING_LENGTH];
+  WCHAR ProductString[MAXIMUM_USB_STRING_LENGTH];
+  WCHAR HubSymbolicLinkName[MAX_PATH];
+} USBRPM_DEVICE_INFORMATION, *PUSBRPM_DEVICE_INFORMATION;
+
+typedef struct _USBRPM_DEVICE_LIST {
+  ULONG NumberOfDevices;
+  USBRPM_DEVICE_INFORMATION Device[0];
+} USBRPM_DEVICE_LIST, *PUSBRPM_DEVICE_LIST;
+
+USBRPMAPI
+NTSTATUS
+NTAPI
+RPMRegisterAlternateDriver(
+  IN PDRIVER_OBJECT  DriverObject,
+  IN LPCWSTR CompatibleId, 
+  OUT PHANDLE RegisteredDriver);
+
+USBRPMAPI
+NTSTATUS
+NTAPI
+RPMUnregisterAlternateDriver(
+  IN HANDLE RegisteredDriver);
+
+USBRPMAPI
+NTSTATUS
+RPMGetAvailableDevices(
+  IN HANDLE RegisteredDriver,
+  IN USHORT Locale,
+  OUT PUSBRPM_DEVICE_LIST *DeviceList);
+
+USBRPMAPI
+NTSTATUS
+NTAPI
+RPMLoadAlternateDriverForDevice(
+  IN HANDLE RegisteredDriver,
+  IN ULONG64 HubID,
+  IN ULONG ConnectionIndex,
+  IN OPTIONAL REFGUID OwnerGuid);
+
+USBRPMAPI
+NTSTATUS
+NTAPI
+RPMUnloadAlternateDriverForDevice(
+  IN HANDLE RegisteredDriver,
+  IN ULONG64 HubID,
+  IN ULONG ConnectionIndex);