1 /*++ 2 3 Copyright (c) Microsoft Corporation. All rights reserved. 4 5 _WdfVersionBuild_ 6 7 Module Name: 8 9 WdfInstaller.h 10 11 Abstract: 12 13 Contains prototypes for the WDF installer support. 14 15 Author: 16 17 Environment: 18 19 kernel mode only 20 21 Revision History: 22 23 --*/ 24 25 // 26 // NOTE: This header is generated by stubwork. Please make any 27 // modifications to the corresponding template files 28 // (.x or .y) and use stubwork to regenerate the header 29 // 30 31 #ifndef _WDFINSTALLER_H_ 32 #define _WDFINSTALLER_H_ 33 34 #ifndef WDF_EXTERN_C 35 #ifdef __cplusplus 36 #define WDF_EXTERN_C extern "C" 37 #define WDF_EXTERN_C_START extern "C" { 38 #define WDF_EXTERN_C_END } 39 #else 40 #define WDF_EXTERN_C 41 #define WDF_EXTERN_C_START 42 #define WDF_EXTERN_C_END 43 #endif 44 #endif 45 46 WDF_EXTERN_C_START 47 48 49 50 #if (NTDDI_VERSION >= NTDDI_WIN2K) 51 52 53 54 typedef struct _WDF_COINSTALLER_INSTALL_OPTIONS { 55 ULONG Size; 56 BOOL ShowRebootPrompt; 57 } WDF_COINSTALLER_INSTALL_OPTIONS, *PWDF_COINSTALLER_INSTALL_OPTIONS; 58 59 FORCEINLINE 60 VOID 61 WDF_COINSTALLER_INSTALL_OPTIONS_INIT( 62 _Out_ PWDF_COINSTALLER_INSTALL_OPTIONS ClientOptions 63 ) 64 { 65 RtlZeroMemory(ClientOptions, sizeof(WDF_COINSTALLER_INSTALL_OPTIONS)); 66 67 ClientOptions->Size = sizeof(WDF_COINSTALLER_INSTALL_OPTIONS); 68 } 69 70 71 //---------------------------------------------------------------------------- 72 // To be called before (your) WDF driver is installed. 73 //---------------------------------------------------------------------------- 74 ULONG 75 WINAPI 76 WdfPreDeviceInstall( 77 _In_ LPCWSTR InfPath, 78 _In_opt_ LPCWSTR InfSectionName 79 ); 80 81 typedef 82 ULONG 83 (WINAPI *PFN_WDFPREDEVICEINSTALL)( 84 _In_ LPCWSTR InfPath, 85 _In_opt_ LPCWSTR InfSectionName 86 ); 87 88 ULONG 89 WINAPI 90 WdfPreDeviceInstallEx( 91 _In_ LPCWSTR InfPath, 92 _In_opt_ LPCWSTR InfSectionName, 93 _In_ PWDF_COINSTALLER_INSTALL_OPTIONS ClientOptions 94 ); 95 96 typedef 97 ULONG 98 (WINAPI *PFN_WDFPREDEVICEINSTALLEX)( 99 _In_ LPCWSTR InfPath, 100 _In_opt_ LPCWSTR InfSectionName, 101 _In_ PWDF_COINSTALLER_INSTALL_OPTIONS ClientOptions 102 ); 103 104 //---------------------------------------------------------------------------- 105 // To be called after (your) WDF driver is installed. 106 //---------------------------------------------------------------------------- 107 ULONG 108 WINAPI 109 WdfPostDeviceInstall( 110 _In_ LPCWSTR InfPath, 111 _In_opt_ LPCWSTR InfSectionName 112 ); 113 114 typedef 115 ULONG 116 (WINAPI *PFN_WDFPOSTDEVICEINSTALL)( 117 _In_ LPCWSTR InfPath, 118 _In_opt_ LPCWSTR InfSectionName 119 ); 120 121 //---------------------------------------------------------------------------- 122 // To be called before (your) WDF driver is removed. 123 //---------------------------------------------------------------------------- 124 ULONG 125 WINAPI 126 WdfPreDeviceRemove( 127 _In_ LPCWSTR InfPath, 128 _In_opt_ LPCWSTR InfSectionName 129 130 ); 131 132 typedef 133 ULONG 134 (WINAPI *PFN_WDFPREDEVICEREMOVE)( 135 _In_ LPCWSTR InfPath, 136 _In_opt_ LPCWSTR InfSectionName 137 ); 138 139 //---------------------------------------------------------------------------- 140 // To be called after (your) WDF driver is removed. 141 //---------------------------------------------------------------------------- 142 ULONG 143 WINAPI 144 WdfPostDeviceRemove( 145 _In_ LPCWSTR InfPath, 146 _In_opt_ LPCWSTR InfSectionName 147 ); 148 149 typedef 150 ULONG 151 (WINAPI *PFN_WDFPOSTDEVICEREMOVE)( 152 _In_ LPCWSTR InfPath, 153 _In_opt_ LPCWSTR InfSectionName 154 155 ); 156 157 158 159 #endif // (NTDDI_VERSION >= NTDDI_WIN2K) 160 161 162 WDF_EXTERN_C_END 163 164 #endif // _WDFINSTALLER_H_ 165 166