1 | /*
|
---|
2 | * usbrpmif.h
|
---|
3 | *
|
---|
4 | * This file is part of the ReactOS PSDK package.
|
---|
5 | *
|
---|
6 | * Contributors:
|
---|
7 | * Created by Amine Khaldi <amine.khaldi@reactos.org>
|
---|
8 | *
|
---|
9 | * THIS SOFTWARE IS NOT COPYRIGHTED
|
---|
10 | *
|
---|
11 | * This source code is offered for use in the public domain. You may
|
---|
12 | * use, modify or distribute it freely.
|
---|
13 | *
|
---|
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.
|
---|
18 | *
|
---|
19 | */
|
---|
20 |
|
---|
21 | #pragma once
|
---|
22 |
|
---|
23 | #include "windef.h"
|
---|
24 | #include "usb100.h"
|
---|
25 |
|
---|
26 | #if !defined(_USBRPM_DRIVER_)
|
---|
27 | #define USBRPMAPI DECLSPEC_IMPORT
|
---|
28 | #else
|
---|
29 | #define USBRPMAPI
|
---|
30 | #endif
|
---|
31 |
|
---|
32 | typedef struct _USBRPM_DEVICE_INFORMATION {
|
---|
33 | ULONG64 HubId;
|
---|
34 | ULONG ConnectionIndex;
|
---|
35 | UCHAR DeviceClass;
|
---|
36 | USHORT VendorId;
|
---|
37 | USHORT ProductId;
|
---|
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;
|
---|
42 |
|
---|
43 | typedef struct _USBRPM_DEVICE_LIST {
|
---|
44 | ULONG NumberOfDevices;
|
---|
45 | USBRPM_DEVICE_INFORMATION Device[0];
|
---|
46 | } USBRPM_DEVICE_LIST, *PUSBRPM_DEVICE_LIST;
|
---|
47 |
|
---|
48 | USBRPMAPI
|
---|
49 | NTSTATUS
|
---|
50 | NTAPI
|
---|
51 | RPMRegisterAlternateDriver(
|
---|
52 | PDRIVER_OBJECT DriverObject,
|
---|
53 | LPCWSTR CompatibleId,
|
---|
54 | PHANDLE RegisteredDriver);
|
---|
55 |
|
---|
56 | USBRPMAPI
|
---|
57 | NTSTATUS
|
---|
58 | NTAPI
|
---|
59 | RPMUnregisterAlternateDriver(
|
---|
60 | HANDLE RegisteredDriver);
|
---|
61 |
|
---|
62 | USBRPMAPI
|
---|
63 | NTSTATUS
|
---|
64 | RPMGetAvailableDevices(
|
---|
65 | HANDLE RegisteredDriver,
|
---|
66 | USHORT Locale,
|
---|
67 | PUSBRPM_DEVICE_LIST *DeviceList);
|
---|
68 |
|
---|
69 | USBRPMAPI
|
---|
70 | NTSTATUS
|
---|
71 | NTAPI
|
---|
72 | RPMLoadAlternateDriverForDevice(
|
---|
73 | HANDLE RegisteredDriver,
|
---|
74 | ULONG64 HubID,
|
---|
75 | ULONG ConnectionIndex,
|
---|
76 | REFGUID OwnerGuid);
|
---|
77 |
|
---|
78 | USBRPMAPI
|
---|
79 | NTSTATUS
|
---|
80 | NTAPI
|
---|
81 | RPMUnloadAlternateDriverForDevice(
|
---|
82 | HANDLE RegisteredDriver,
|
---|
83 | ULONG64 HubID,
|
---|
84 | ULONG ConnectionIndex);
|
---|