4
* This file is part of the ReactOS PSDK package.
7
* Created by Amine Khaldi <amine.khaldi@reactos.org>
9
* THIS SOFTWARE IS NOT COPYRIGHTED
11
* This source code is offered for use in the public domain. You may
12
* use, modify or distribute it freely.
14
* This code is distributed in the hope that it will be useful but
15
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
16
* DISCLAIMED. This includes but is not limited to warranties of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
26
#if !defined(_USBRPM_DRIVER_)
27
#define USBRPMAPI DECLSPEC_IMPORT
32
typedef struct _USBRPM_DEVICE_INFORMATION {
34
ULONG ConnectionIndex;
38
WCHAR ManufacturerString[MAXIMUM_USB_STRING_LENGTH];
39
WCHAR ProductString[MAXIMUM_USB_STRING_LENGTH];
40
WCHAR HubSymbolicLinkName[MAX_PATH];
41
} USBRPM_DEVICE_INFORMATION, *PUSBRPM_DEVICE_INFORMATION;
43
typedef struct _USBRPM_DEVICE_LIST {
44
ULONG NumberOfDevices;
45
USBRPM_DEVICE_INFORMATION Device[0];
46
} USBRPM_DEVICE_LIST, *PUSBRPM_DEVICE_LIST;
51
RPMRegisterAlternateDriver(
52
PDRIVER_OBJECT DriverObject,
54
PHANDLE RegisteredDriver);
59
RPMUnregisterAlternateDriver(
60
HANDLE RegisteredDriver);
64
RPMGetAvailableDevices(
65
HANDLE RegisteredDriver,
67
PUSBRPM_DEVICE_LIST *DeviceList);
72
RPMLoadAlternateDriverForDevice(
73
HANDLE RegisteredDriver,
75
ULONG ConnectionIndex,
81
RPMUnloadAlternateDriverForDevice(
82
HANDLE RegisteredDriver,
84
ULONG ConnectionIndex);