| /* | |
| * usbrpmif.h | |
| * | |
| * This file is part of the ReactOS PSDK package. | |
| * | |
| * Contributors: | |
| * Created by Amine Khaldi <amine.khaldi@reactos.org> | |
| * | |
| * THIS SOFTWARE IS NOT COPYRIGHTED | |
| * | |
| * This source code is offered for use in the public domain. You may | |
| * use, modify or distribute it freely. | |
| * | |
| * This code is distributed in the hope that it will be useful but | |
| * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | |
| * DISCLAIMED. This includes but is not limited to warranties of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
| * | |
| */ | |
| #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( | |
| PDRIVER_OBJECT DriverObject, | |
| LPCWSTR CompatibleId, | |
| PHANDLE RegisteredDriver); | |
| USBRPMAPI | |
| NTSTATUS | |
| NTAPI | |
| RPMUnregisterAlternateDriver( | |
| HANDLE RegisteredDriver); | |
| USBRPMAPI | |
| NTSTATUS | |
| RPMGetAvailableDevices( | |
| HANDLE RegisteredDriver, | |
| USHORT Locale, | |
| PUSBRPM_DEVICE_LIST *DeviceList); | |
| USBRPMAPI | |
| NTSTATUS | |
| NTAPI | |
| RPMLoadAlternateDriverForDevice( | |
| HANDLE RegisteredDriver, | |
| ULONG64 HubID, | |
| ULONG ConnectionIndex, | |
| REFGUID OwnerGuid); | |
| USBRPMAPI | |
| NTSTATUS | |
| NTAPI | |
| RPMUnloadAlternateDriverForDevice( | |
| HANDLE RegisteredDriver, | |
| ULONG64 HubID, | |
| ULONG ConnectionIndex); |