/* * 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);