xref: /reactos/sdk/include/wdf/kmdf/1.17/wdfinstaller.h (revision c8d07514)
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