1/* 2 * newdev.h 3 * 4 * Driver installation DLL interface 5 * 6 * This file is part of the w32api package. 7 * 8 * Contributors: 9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 10 * 11 * THIS SOFTWARE IS NOT COPYRIGHTED 12 * 13 * This source code is offered for use in the public domain. You may 14 * use, modify or distribute it freely. 15 * 16 * This code is distributed in the hope that it will be useful but 17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 18 * DISCLAIMED. This includes but is not limited to warranties of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20 * 21 */ 22 23#pragma once 24 25#include <setupapi.h> 26 27#ifdef __cplusplus 28extern "C" { 29#endif 30 31#include <pshpack1.h> 32 33/* UpdateDriverForPlugAndPlayDevices.InstallFlags constants */ 34#define INSTALLFLAG_FORCE 0x00000001 35#define INSTALLFLAG_READONLY 0x00000002 36#define INSTALLFLAG_NONINTERACTIVE 0x00000004 37#define INSTALLFLAG_BITS 0x00000007 38 39#if (WINVER >= _WIN32_WINNT_WIN2K) 40 41WINBOOL 42WINAPI 43UpdateDriverForPlugAndPlayDevicesA( 44 HWND hwndParent, 45 LPCSTR HardwareId, 46 LPCSTR FullInfPath, 47 DWORD InstallFlags, 48 PBOOL bRebootRequired OPTIONAL); 49 50WINBOOL 51WINAPI 52UpdateDriverForPlugAndPlayDevicesW( 53 HWND hwndParent, 54 LPCWSTR HardwareId, 55 LPCWSTR FullInfPath, 56 DWORD InstallFlags, 57 PBOOL bRebootRequired OPTIONAL); 58 59#ifdef UNICODE 60#define UpdateDriverForPlugAndPlayDevices UpdateDriverForPlugAndPlayDevicesW 61#else 62#define UpdateDriverForPlugAndPlayDevices UpdateDriverForPlugAndPlayDevicesA 63#endif /* UNICODE */ 64 65#endif /* (WINVER >= _WIN32_WINNT_WIN2K) */ 66 67#if (WINVER >= _WIN32_WINNT_VISTA) 68 69#define DIIDFLAG_SHOWSEARCHUI 0x00000001 70#define DIIDFLAG_NOFINISHINSTALLUI 0x00000002 71#define DIIDFLAG_INSTALLNULLDRIVER 0x00000004 72#define DIIDFLAG_BITS 0x00000007 73 74#define DIIRFLAG_INF_ALREADY_COPIED 0x00000001 75#define DIIRFLAG_FORCE_INF 0x00000002 76#define DIIRFLAG_HW_USING_THE_INF 0x00000004 77#define DIIRFLAG_HOTPATCH 0x00000008 78#define DIIRFLAG_NOBACKUP 0x00000010 79#define DIIRFLAG_BITS ( DIIRFLAG_FORCE_INF | DIIRFLAG_HOTPATCH) 80#define DIIRFLAG_SYSTEM_BITS ( DIIRFLAG_INF_ALREADY_COPIED |\ 81 DIIRFLAG_FORCE_INF |\ 82 DIIRFLAG_HW_USING_THE_INF |\ 83 DIIRFLAG_HOTPATCH |\ 84 DIIRFLAG_NOBACKUP ) 85 86#define ROLLBACK_FLAG_NO_UI 0x00000001 87#define ROLLBACK_BITS 0x00000001 88 89WINBOOL 90WINAPI 91DiInstallDevice( 92 HWND hwndParent OPTIONAL, 93 HDEVINFO DeviceInfoSet, 94 PSP_DEVINFO_DATA DeviceInfoData, 95 PSP_DRVINFO_DATA DriverInfoData OPTIONAL, 96 DWORD Flags, 97 PBOOL NeedReboot OPTIONAL); 98 99WINBOOL 100WINAPI 101DiShowUpdateDevice( 102 HWND hwndParent OPTIONAL, 103 HDEVINFO DeviceInfoSet, 104 PSP_DEVINFO_DATA DeviceInfoData, 105 DWORD Flags, 106 PBOOL NeedReboot OPTIONAL); 107 108WINBOOL 109WINAPI 110DiRollbackDriver( 111 HDEVINFO DeviceInfoSet, 112 PSP_DEVINFO_DATA DeviceInfoData, 113 HWND hwndParent OPTIONAL, 114 DWORD Flags, 115 PBOOL NeedReboot OPTIONAL); 116 117WINBOOL 118WINAPI 119DiInstallDriverW( 120 HWND hwndParent OPTIONAL, 121 LPCWSTR InfPath, 122 DWORD Flags, 123 PBOOL NeedReboot OPTIONAL); 124 125WINBOOL 126WINAPI 127DiInstallDriverA( 128 HWND hwndParent OPTIONAL, 129 LPCSTR InfPath, 130 DWORD Flags, 131 PBOOL NeedReboot OPTIONAL); 132 133 134#ifdef UNICODE 135#define DiInstallDriver DiInstallDriverW 136#else 137#define DiInstallDriver DiInstallDriverA 138#endif 139 140#endif /* (WINVER >= _WIN32_WINNT_VISTA) */ 141 142#if (WINVER >= _WIN32_WINNT_WIN7) 143WINBOOL 144WINAPI 145DiUninstallDevice( 146 HWND hwndParent, 147 HDEVINFO DeviceInfoSet, 148 PSP_DEVINFO_DATA DeviceInfoData, 149 DWORD Flags, 150 PBOOL NeedReboot OPTIONAL); 151#endif /* (WINVER >= _WIN32_WINNT_WIN7) */ 152 153#include <poppack.h> 154 155#ifdef __cplusplus 156} 157#endif 158