ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dismapi.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 12691 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7 #ifndef _DISMAPI_H_
8 #define _DISMAPI_H_
9
10 #include <winapifamily.h>
11
12 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
13
14 #ifdef __cplusplus
15 extern "C"
16 {
17 #endif
18
19 typedef UINT DismSession;
20
21 typedef void(CALLBACK *DISM_PROGRESS_CALLBACK)(UINT Current, UINT Total, PVOID UserData);
22
23 #define DISM_ONLINE_IMAGE L"DISM_{53BFAE52-B167-4E2F-A258-0A37B57FF845}"
24
25 #define DISM_SESSION_DEFAULT 0
26
27 #define DISM_MOUNT_READWRITE 0x00000000
28 #define DISM_MOUNT_READONLY 0x00000001
29 #define DISM_MOUNT_OPTIMIZE 0x00000002
30 #define DISM_MOUNT_CHECK_INTEGRITY 0x00000004
31
32 #define DISM_COMMIT_IMAGE 0x00000000
33 #define DISM_DISCARD_IMAGE 0x00000001
34
35 #define DISM_COMMIT_GENERATE_INTEGRITY 0x00010000
36 #define DISM_COMMIT_APPEND 0x00020000
37 #define DISM_COMMIT_MASK 0xffff0000
38
39 /* https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism/dism-api-enumerations */
40
41 typedef enum _DismLogLevel
42 {
43 DismLogErrors = 0,
44 DismLogErrorsWarnings,
45 DismLogErrorsWarningsInfo
46 } DismLogLevel;
47
48 typedef enum _DismImageIdentifier
49 {
50 DismImageIndex = 0,
51 DismImageName
52 } DismImageIdentifier;
53
54 typedef enum _DismMountMode
55 {
56 DismReadWrite = 0,
57 DismReadOnly
58 } DismMountMode;
59
60 typedef enum _DismImageType
61 {
62 DismImageTypeUnsupported = -1,
63 DismImageTypeWim = 0,
64 DismImageTypeVhd = 1
65 } DismImageType;
66
67 typedef enum _DismImageBootable
68 {
69 DismImageBootableYes = 0,
70 DismImageBootableNo,
71 DismImageBootableUnknown
72 } DismImageBootable;
73
74 typedef enum _DismMountStatus
75 {
76 DismMountStatusOk = 0,
77 DismMountStatusNeedsRemount,
78 DismMountStatusInvalid
79 } DismMountStatus;
80
81 typedef enum _DismImageHealthState
82 {
83 DismImageHealthy = 0,
84 DismImageRepairable,
85 DismImageNonRepairable
86 } DismImageHealthState;
87
88 typedef enum _DismPackageIdentifier
89 {
90 DismPackageNone = 0,
91 DismPackageName,
92 DismPackagePath
93 } DismPackageIdentifier;
94
95 typedef enum _DismPackageFeatureState
96 {
97 DismStateNotPresent = 0,
98 DismStateUninstallPending,
99 DismStateStaged,
100 DismStateResolved,
101 DismStateRemoved = DismStateResolved,
102 DismStateInstalled,
103 DismStateInstallPending,
104 DismStateSuperseded,
105 DismStatePartiallyInstalled
106 } DismPackageFeatureState;
107
108 typedef enum _DismReleaseType
109 {
110 DismReleaseTypeCriticalUpdate = 0,
111 DismReleaseTypeDriver,
112 DismReleaseTypeFeaturePack,
113 DismReleaseTypeHotfix,
114 DismReleaseTypeSecurityUpdate,
115 DismReleaseTypeSoftwareUpdate,
116 DismReleaseTypeUpdate,
117 DismReleaseTypeUpdateRollup,
118 DismReleaseTypeLanguagePack,
119 DismReleaseTypeFoundation,
120 DismReleaseTypeServicePack,
121 DismReleaseTypeProduct,
122 DismReleaseTypeLocalPack,
123 DismReleaseTypeOther,
124 DismReleaseTypeOnDemandPack
125 } DismReleaseType;
126
127 typedef enum _DismRestartType
128 {
129 DismRestartNo = 0,
130 DismRestartPossible,
131 DismRestartRequired
132 } DismRestartType;
133
134 typedef enum _DismDriverSignature
135 {
136 DismDriverSignatureUnknown = 0,
137 DismDriverSignatureUnsigned = 1,
138 DismDriverSignatureSigned = 2
139 } DismDriverSignature;
140
141 typedef enum _DismFullyOfflineInstallableType
142 {
143 DismFullyOfflineInstallable = 0,
144 DismFullyOfflineNotInstallable,
145 DismFullyOfflineInstallableUndetermined
146 } DismFullyOfflineInstallableType;
147
148 /* https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism/dism-api-structures */
149
150 #pragma pack(push, 1)
151
152 typedef struct _DismPackage
153 {
154 PCWSTR PackageName;
155 DismPackageFeatureState PackageState;
156 DismReleaseType ReleaseType;
157 SYSTEMTIME InstallTime;
158 } DismPackage;
159
160 typedef struct _DismCustomProperty
161 {
162 PCWSTR Name;
163 PCWSTR Value;
164 PCWSTR Path;
165 } DismCustomProperty;
166
167 typedef struct _DismFeature
168 {
169 PCWSTR FeatureName;
170 DismPackageFeatureState State;
171 } DismFeature;
172
173 typedef struct _DismCapability
174 {
175 PCWSTR Name;
176 DismPackageFeatureState State;
177 } DismCapability;
178
179 typedef struct _DismPackageInfo
180 {
181 PCWSTR PackageName;
182 DismPackageFeatureState PackageState;
183 DismReleaseType ReleaseType;
184 SYSTEMTIME InstallTime;
185 WINBOOL Applicable;
186 PCWSTR Copyright;
187 PCWSTR Company;
188 SYSTEMTIME CreationTime;
189 PCWSTR DisplayName;
190 PCWSTR Description;
191 PCWSTR InstallClient;
192 PCWSTR InstallPackageName;
193 SYSTEMTIME LastUpdateTime;
194 PCWSTR ProductName;
195 PCWSTR ProductVersion;
196 DismRestartType RestartRequired;
197 DismFullyOfflineInstallableType FullyOffline;
198 PCWSTR SupportInformation;
199 DismCustomProperty *CustomProperty;
200 UINT CustomPropertyCount;
201 DismFeature *Feature;
202 UINT FeatureCount;
203 } DismPackageInfo;
204
205 #ifdef __cplusplus
206 typedef struct _DismPackageInfoEx : public _DismPackageInfo
207 {
208 #else
209 typedef struct _DismPackageInfoEx
210 {
211 DismPackageInfo;
212 #endif
213 PCWSTR CapabilityId;
214 } DismPackageInfoEx;
215
216 typedef struct _DismFeatureInfo
217 {
218 PCWSTR FeatureName;
219 DismPackageFeatureState FeatureState;
220 PCWSTR DisplayName;
221 PCWSTR Description;
222 DismRestartType RestartRequired;
223 DismCustomProperty *CustomProperty;
224 UINT CustomPropertyCount;
225 } DismFeatureInfo;
226
227 typedef struct _DismCapabilityInfo
228 {
229 PCWSTR Name;
230 DismPackageFeatureState State;
231 PCWSTR DisplayName;
232 PCWSTR Description;
233 DWORD DownloadSize;
234 DWORD InstallSize;
235 } DismCapabilityInfo;
236
237 typedef struct _DismString
238 {
239 PCWSTR Value;
240 } DismString;
241
242 typedef DismString DismLanguage;
243
244 typedef struct _DismWimCustomizedInfo
245 {
246 UINT Size;
247 UINT DirectoryCount;
248 UINT FileCount;
249 SYSTEMTIME CreatedTime;
250 SYSTEMTIME ModifiedTime;
251 } DismWimCustomizedInfo;
252
253 typedef struct _DismImageInfo
254 {
255 DismImageType ImageType;
256 UINT ImageIndex;
257 PCWSTR ImageName;
258 PCWSTR ImageDescription;
259 UINT64 ImageSize;
260 UINT Architecture;
261 PCWSTR ProductName;
262 PCWSTR EditionId;
263 PCWSTR InstallationType;
264 PCWSTR Hal;
265 PCWSTR ProductType;
266 PCWSTR ProductSuite;
267 UINT MajorVersion;
268 UINT MinorVersion;
269 UINT Build;
270 UINT SpBuild;
271 UINT SpLevel;
272 DismImageBootable Bootable;
273 PCWSTR SystemRoot;
274 DismLanguage *Language;
275 UINT LanguageCount;
276 UINT DefaultLanguageIndex;
277 VOID *CustomizedInfo;
278 } DismImageInfo;
279
280 typedef struct _DismMountedImageInfo
281 {
282 PCWSTR MountPath;
283 PCWSTR ImageFilePath;
284 UINT ImageIndex;
285 DismMountMode MountMode;
286 DismMountStatus MountStatus;
287 } DismMountedImageInfo;
288
289 typedef struct _DismDriverPackage
290 {
291 PCWSTR PublishedName;
292 PCWSTR OriginalFileName;
293 WINBOOL InBox;
294 PCWSTR CatalogFile;
295 PCWSTR ClassName;
296 PCWSTR ClassGuid;
297 PCWSTR ClassDescription;
298 WINBOOL BootCritical;
299 DismDriverSignature DriverSignature;
300 PCWSTR ProviderName;
301 SYSTEMTIME Date;
302 UINT MajorVersion;
303 UINT MinorVersion;
304 UINT Build;
305 UINT Revision;
306 } DismDriverPackage;
307
308 typedef struct _DismDriver
309 {
310 PCWSTR ManufacturerName;
311 PCWSTR HardwareDescription;
312 PCWSTR HardwareId;
313 UINT Architecture;
314 PCWSTR ServiceName;
315 PCWSTR CompatibleIds;
316 PCWSTR ExcludeIds;
317 } DismDriver;
318
319 #pragma pack(pop)
320
321 /* https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism/dism-api-functions */
322
323 HRESULT WINAPI DismInitialize (DismLogLevel LogLevel, PCWSTR LogFilePath, PCWSTR ScratchDirectory);
324 HRESULT WINAPI DismShutdown (void);
325 HRESULT WINAPI DismMountImage (PCWSTR ImageFilePath, PCWSTR MountPath, UINT ImageIndex, PCWSTR ImageName, DismImageIdentifier ImageIdentifier, DWORD Flags, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
326 HRESULT WINAPI DismUnmountImage (PCWSTR MountPath, DWORD Flags, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
327 HRESULT WINAPI DismOpenSession (PCWSTR ImagePath, PCWSTR WindowsDirectory, PCWSTR SystemDrive, DismSession *Session);
328 HRESULT WINAPI DismCloseSession (DismSession Session);
329 HRESULT WINAPI DismGetLastErrorMessage (DismString **ErrorMessage);
330 HRESULT WINAPI DismRemountImage (PCWSTR MountPath);
331 HRESULT WINAPI DismCommitImage (DismSession Session, DWORD Flags, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
332 HRESULT WINAPI DismGetImageInfo (PCWSTR ImageFilePath, DismImageInfo **ImageInfo, UINT *Count);
333 HRESULT WINAPI DismGetMountedImageInfo (DismMountedImageInfo **MountedImageInfo, UINT *Count);
334 HRESULT WINAPI DismCleanupMountpoints (void);
335 HRESULT WINAPI DismCheckImageHealth (DismSession Session, WINBOOL ScanImage, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData, DismImageHealthState *ImageHealth);
336 HRESULT WINAPI DismRestoreImageHealth (DismSession Session, PCWSTR *SourcePaths, UINT SourcePathCount, WINBOOL LimitAccess, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
337 HRESULT WINAPI DismDelete (VOID *DismStructure);
338 HRESULT WINAPI DismAddPackage (DismSession Session, PCWSTR PackagePath, WINBOOL IgnoreCheck, WINBOOL PreventPending, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
339 HRESULT WINAPI DismRemovePackage (DismSession Session, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
340 HRESULT WINAPI DismEnableFeature (DismSession Session, PCWSTR FeatureName, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, WINBOOL LimitAccess, PCWSTR *SourcePaths, UINT SourcePathCount, WINBOOL EnableAll, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
341 HRESULT WINAPI DismDisableFeature (DismSession Session, PCWSTR FeatureName, PCWSTR PackageName, WINBOOL RemovePayload, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
342 HRESULT WINAPI DismGetPackages (DismSession Session, DismPackage **Package, UINT *Count);
343 HRESULT WINAPI DismGetPackageInfo (DismSession Session, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, DismPackageInfo **PackageInfo);
344 HRESULT WINAPI DismGetPackageInfoEx (DismSession Session, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, DismPackageInfoEx **PackageInfoEx);
345 HRESULT WINAPI DismGetFeatures (DismSession Session, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, DismFeature **Feature, UINT *Count);
346 HRESULT WINAPI DismGetFeatureInfo (DismSession Session, PCWSTR FeatureName, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, DismFeatureInfo **FeatureInfo);
347 HRESULT WINAPI DismGetFeatureParent (DismSession Session, PCWSTR FeatureName, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, DismFeature **Feature, UINT *Count);
348 HRESULT WINAPI DismApplyUnattend (DismSession Session, PCWSTR UnattendFile, WINBOOL SingleSession);
349 HRESULT WINAPI DismAddDriver (DismSession Session, PCWSTR DriverPath, WINBOOL ForceUnsigned);
350 HRESULT WINAPI DismRemoveDriver (DismSession Session, PCWSTR DriverPath);
351 HRESULT WINAPI DismGetDrivers (DismSession Session, WINBOOL AllDrivers, DismDriverPackage **DriverPackage, UINT *Count);
352 HRESULT WINAPI DismGetDriverInfo (DismSession Session, PCWSTR DriverPath, DismDriver **Driver, UINT *Count, DismDriverPackage **DriverPackage);
353 HRESULT WINAPI DismGetCapabilities (DismSession Session, DismCapability **Capability, UINT *Count);
354 HRESULT WINAPI DismGetCapabilityInfo (DismSession Session, PCWSTR Name, DismCapabilityInfo **Info);
355 HRESULT WINAPI DismAddCapability (DismSession Session, PCWSTR Name, WINBOOL LimitAccess, PCWSTR *SourcePaths, UINT SourcePathCount, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
356 HRESULT WINAPI DismRemoveCapability (DismSession Session, PCWSTR Name, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
357
358 #define DISMAPI_S_RELOAD_IMAGE_SESSION_REQUIRED 0x00000001
359 #define DISMAPI_E_DISMAPI_NOT_INITIALIZED 0xc0040001
360 #define DISMAPI_E_SHUTDOWN_IN_PROGRESS 0xc0040002
361 #define DISMAPI_E_OPEN_SESSION_HANDLES 0xc0040003
362 #define DISMAPI_E_INVALID_DISM_SESSION 0xc0040004
363 #define DISMAPI_E_INVALID_IMAGE_INDEX 0xc0040005
364 #define DISMAPI_E_INVALID_IMAGE_NAME 0xc0040006
365 #define DISMAPI_E_UNABLE_TO_UNMOUNT_IMAGE_PATH 0xc0040007
366 #define DISMAPI_E_LOGGING_DISABLED 0xc0040009
367 #define DISMAPI_E_OPEN_HANDLES_UNABLE_TO_UNMOUNT_IMAGE_PATH 0xc004000a
368 #define DISMAPI_E_OPEN_HANDLES_UNABLE_TO_MOUNT_IMAGE_PATH 0xc004000b
369 #define DISMAPI_E_OPEN_HANDLES_UNABLE_TO_REMOUNT_IMAGE_PATH 0xc004000c
370 #define DISMAPI_E_PARENT_FEATURE_DISABLED 0xc004000d
371 #define DISMAPI_E_MUST_SPECIFY_ONLINE_IMAGE 0xc004000e
372 #define DISMAPI_E_INVALID_PRODUCT_KEY 0xc004000f
373 #define DISMAPI_E_NEEDS_REMOUNT 0xc1510114
374 #define DISMAPI_E_UNKNOWN_FEATURE 0x800f080c
375 #define DISMAPI_E_BUSY 0x800f0902
376
377 #ifdef __cplusplus
378 }
379 #endif
380
381 #endif /* WINAPI_PARTITION_DESKTOP */
382
383 #endif /* _DISMAPI_H_ */