#ifndef __Dism_H
#define __Dism_H
#ifdef __cplusplus
extern "C" {
#endif
#define __declspec(x) __attribute__((x))
#define __unaligned __attribute__((packed))
#define DECLSPEC_IMPORT extern __declspec(dllimport)
#if defined(__x86_64__)||defined(_M_AMD64)
#define _AMD64_
typedef unsigned long long size_t;
typedef long long LONG_PTR;
#define __cdecl
#define __fastcall
#define __stdcall
#else
#define _X86_
typedef unsigned long size_t;
typedef long LONG_PTR;
#define __cdecl __attribute__((__cdecl__))
#define __fastcall __attribute__((fastcall))
#define __stdcall __attribute__((__stdcall__))
#endif
typedef size_t ULONG_PTR, DWORD_PTR, SIZE_T, WPARAM, LPARAM;
typedef LONG_PTR SSIZE_T;
typedef unsigned long DWORD,*PDWORD,*LPDWORD,ULONG,*PULONG,*LPULONG,UINT,*PUINT,*LPUINT,UINT32,*PUINT32,*LPUINT32;
typedef unsigned long long DWORD64,*PDWORD64,*LPDWORD64, UINT64,*PUINT64,*LPUINT64;
typedef long LONG,*PLONG,*LPLONG,INT,*PINT,*LPINT,INT32,*PINT32,*LPINT32;
typedef unsigned short UINT16,*PUINT16,*LPUINT16, WORD,*PWORD,*LPWORD;
typedef short INT16,*PINT16,*LPINT16;
typedef void VOID, *LPVOID, *PVOID;
typedef long HRESULT;
typedef int BOOL,*PBOOL,*LPBOOL;
#ifndef _WCHAR_T_DEFINED
typedef short wchar_t;
#define _WCHAR_T_DEFINED
#endif // !_WCHAR_T_DEFINED
typedef wchar_t WCHAR, *PWSTR,* LPWSTR,*BSTR;
typedef char CHAR, *PCHAR, *LPCHAR;
typedef const wchar_t* LPCWSTR,PCWSTR;
typedef const char* LPCSTR, PCSTR;
typedef BSTR *LPBSTR;
//GUID
typedef struct _GUID {
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID;
typedef GUID IID;
typedef GUID CLSID;
/* 0 == FALSE, -1 == TRUE */
typedef short VARIANT_BOOL;
#define MAX_PATH 260
#define FALSE 0
#define TRUE 1
#define NULL ((void*)0)
#define offsetof(type, field) ((size_t)&((type *)0)->field)
void *alloca(size_t size);
#if defined(__x86_64__)||defined(_M_AMD64)
#define _AMD64_
#ifndef _WIN64
typedef void *va_list;
va_list __va_start(void *fp);
void *__va_arg(va_list ap, int arg_type, int size);
va_list __va_copy(va_list src);
void __va_end(va_list ap);
#define va_start(ap, last) ((ap) = __va_start(__builtin_frame_address(0)))
#define va_arg(ap, type) \
(*(type *)(__va_arg(ap, __builtin_va_arg_types(type), sizeof(type))))
#define va_copy(dest, src) ((dest) = __va_copy(src))
#define va_end(ap) __va_end(ap)
#else /* _WIN64 */
typedef char *va_list;
#define va_start(ap,last) ap = ((char *)&(last)) + ((sizeof(last)+7)&~7)
#define va_arg(ap,type) (ap += (sizeof(type)+7)&~7, *(type *)(ap - ((sizeof(type)+7)&~7)))
#define va_copy(dest, src) (dest) = (src)
#define va_end(ap)
#endif
#else /* __i386__ */
#define _X86_
typedef char *va_list;
/* only correct for i386 */
#define va_start(ap,last) ap = ((char *)&(last)) + ((sizeof(last)+3)&~3)
#define va_arg(ap,type) (ap += (sizeof(type)+3)&~3, *(type *)(ap - ((sizeof(type)+3)&~3)))
#define va_copy(dest, src) (dest) = (src)
#define va_end(ap)
#endif
#define _CRTIMP extern
#define __CRT_INLINE extern __inline__
#define _CRT_ALIGN(x) __attribute__((aligned(x)))
#define DECLSPEC_ALIGN(x) __attribute__((aligned(x)))
#define _CRT_PACKING 8
#define __CRT_UNALIGNED
#define _CONST_RETURN
#define __CRT_STRINGIZE(_Value) #_Value
#define _CRT_STRINGIZE(_Value) __CRT_STRINGIZE(_Value)
#define __CRT_WIDE(_String) L ## _String
#define _CRT_WIDE(_String) __CRT_WIDE(_String)
//////////////////////////////////////基础Windows定义//////////////////////////////////////
#define WINAPI __stdcall
typedef void * HKEY,HANDLE;
typedef HKEY *PHKEY, *LPHKEY;
typedef HANDLE * PHANDLE, *LPHANDLE;
typedef DWORD REGSAM;
//
// File System time stamps are represented with the following structure:
//
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;
#define _FILETIME_
//Dism++ API 版本号 1.2
#define __DismAPIVersion__ 0x0102
////////////////////////////////////////////////////////////////
// 枚举
typedef enum
{
DismPackageStateUnknown = 0,
DismPackageStateNotPresent,
DismPackageStateUnintallRequested,
DismPackageStateStaged, //暂存
DismPackageStateStaging, //正在暂存
DismPackageStateInstalled, //更新已经安装
DismPackageStateInstallRequested, //安装挂起
DismPackageStateSuperseded, //该更新已经被取代
DismPackageStatePartiallInstalled, //部分安装
DismPackageStateRemoved, //已经删除
DismPackageStatePermanent //永久固化更新包
} DismPackageState;
typedef enum
{
DismFeatureStateUnknown = 0,
DismFeatureStateNotPresent,
DismFeatureStateUnintallRequested, //该功能已经关闭但是未生效
DismFeatureStateDisable, //该功能已经关闭
DismFeatureStateStaging,
DismFeatureStateEnable, //该功能被启动
DismFeatureStateEnableRequested, //该功能已经启动,但是未生效
DismFeatureStateSuperseded, //该功能已经被取代
DismFeatureStatePartiallInstalled, //该功能部分安装
DismFeatureStateRemoved //该功能已经删除
} DismFeatureState;
typedef enum
{
DismPackageFullyOfflineUnknow = 0,
DismPackageFullyOfflineInatallable,
DismPackageFullyOfflineNotInatallable,
} DismFullyOfflineInstallableState;
typedef enum
{
DismDriverSinStatusUnknow = 0,
DismDriverSinStatusUnsigned,
DismDriverSinStatusSinged
} DismDriverSinStatus;
typedef enum
{
DriverShowAll = 0,
DriverShowInbox = 1,
DriverShowOutOfBox = 2
} DriverShowEnum;
typedef enum
{
DismMountedImageStatusValid = 0,
DismMountedImageStatusMounting = 1,
DismMountedImageStatusInvalid = 2,
DismMountedImageStatusNeedsRemount = 4
} DismMountedImageStatus;
typedef enum
{
WimImageFile,
VhdImageFile
}DismImageFileTpye;
//WIM或者esd文件的压缩类型
typedef enum
{
//未知压缩类型
Compress_Unknown = -1,
//仅存储,不压缩文件
Compress_None = 0,
//此压缩方式支持WIMBOOT启动
Compress_XpressHuffman = 1,
//快速压缩,可以节省压缩时间并且可以减少提交占用
Compress_Xpress = 2,
//最大压缩,可以节省空间
Compress_LZX = 3,
//极限压缩,非常耗费时间,但是体积最小
Compress_LZMS = 4,
}DismCompressTpye;
typedef enum
{
//启动类型未知,可能是系统启动项,也可能是Dism无法识别的其他启动类型,为了安全性Dism++无法修改启动类型未知的项目
DismServiceStartTypeUnknown = -1,
//该服务已经关闭
DismServiceStartTypeDisable,
//该服务为手动启动
DismServiceStartTypeManual,
//该服务是自动启动
DismServiceStartTypeAuto,
//该服务是延迟启动,注意有_不可延迟标记的无法修改为延迟启动,会返回参数错误
DismServiceStartTypeDelayed
}DismServiceStartType;
typedef enum
{
//状态未知
DismSystemStatusUnknown = -1,
//准备就绪
DismSystemStatusReady,
//该系统不支持Dism++
DismSystemStatusNotSupported,
//找不到系统,目标目录无法访问或者路径不存在
DismSystemStatusCannotFind,
//挂载已经失效,需要删除
DismSystemStatusNeedRemove,
//请稍等
DismSystemStatusWait
}DismSystemStatus;
typedef enum
{
DismEnvironmentDefault = 0, //32位系统获得32位目录,64位系统获取64位路径
DismEnvironment64Only, //仅仅获取64位路径,对于32位系统会失败!
DismEnvironment86Only, //总是返回32位路径
}DismEnvironmentType;
typedef enum
{
DismImageHealthy = 0, //映像十分健康不需要修复
DismImageRepairable = 1, //映像已经受损,但是可以修复
DismImageNonRepairable = 2 //映像�
douluo998
- 粉丝: 2138
- 资源: 5357
最新资源
- java毕设项目之ssm基于Java的共享客栈管理系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于java的健身房管理系统的设计与实现+vue(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于java和mysql的多角色学生管理系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于Java的图书管理系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于java的少儿编程网上报名系统+vue(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于Java语言校园快递代取系统的设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于jsp的精品酒销售管理系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于JSP的乡镇自来水收费系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于SSM的高校共享单车管理系统的设计与实现+vue(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于ssm的人才招聘网站+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于SSM框架的购物商城系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于SSM框架的个人博客网站的设计与实现+vue(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于ssm的新能源汽车在线租赁管理系统+vue(完整前后端+说明文档+mysql+lw).zip
- 小目标尺寸下的地表信息图像分类数据集【已标注,约30,000张数据】
- java毕设项目之ssm家政服务网站设计+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于Web的智慧城市实验室主页系统设计与实现+vue(完整前后端+说明文档+mysql+lw).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈