From abdb51d85e427aa3570eb7a326723f2fe25d607f Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath <[email protected]> Date: Thu, 7 Jul 2022 19:16:01 +0530 Subject: [PATCH] headers: Add appmodel.h and minappmodel.h
Required for vulkan-loader Signed-off-by: Biswapriyo Nath <[email protected]> --- mingw-w64-headers/include/appmodel.h | 274 ++++++++++++++++++++++++ mingw-w64-headers/include/minappmodel.h | 48 +++++ 2 files changed, 322 insertions(+) create mode 100644 mingw-w64-headers/include/appmodel.h create mode 100644 mingw-w64-headers/include/minappmodel.h diff --git a/mingw-w64-headers/include/appmodel.h b/mingw-w64-headers/include/appmodel.h new file mode 100644 index 0000000..6b6213e --- /dev/null +++ b/mingw-w64-headers/include/appmodel.h @@ -0,0 +1,274 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef _APPMODEL_H_ +#define _APPMODEL_H_ + +#include <minappmodel.h> + +#if defined(__cplusplus) +extern "C" { +#endif + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) + +#include <pshpack4.h> + +typedef struct PACKAGE_VERSION { + __C89_NAMELESS union { + UINT64 Version; + __C89_NAMELESS struct { + USHORT Revision; + USHORT Build; + USHORT Minor; + USHORT Major; + }; + }; +} PACKAGE_VERSION; + +typedef struct PACKAGE_ID { + UINT32 reserved; + UINT32 processorArchitecture; + PACKAGE_VERSION version; + PWSTR name; + PWSTR publisher; + PWSTR resourceId; + PWSTR publisherId; +} PACKAGE_ID; + +#include <poppack.h> + +WINBASEAPI LONG WINAPI GetCurrentPackageId(UINT32 *bufferLength, BYTE *buffer); +WINBASEAPI LONG WINAPI GetCurrentPackageFullName(UINT32 *packageFullNameLength, PWSTR packageFullName); +WINBASEAPI LONG WINAPI GetCurrentPackageFamilyName(UINT32 *packageFamilyNameLength, PWSTR packageFamilyName); +WINBASEAPI LONG WINAPI GetCurrentPackagePath(UINT32 *pathLength, PWSTR path); +WINBASEAPI LONG WINAPI GetPackageId(HANDLE hProcess, UINT32 *bufferLength, BYTE *buffer); +WINBASEAPI LONG WINAPI GetPackageFullName(HANDLE hProcess, UINT32 *packageFullNameLength, PWSTR packageFullName); +WINBASEAPI LONG WINAPI GetPackageFullNameFromToken(HANDLE token, UINT32 *packageFullNameLength, PWSTR packageFullName); +WINBASEAPI LONG WINAPI GetPackageFamilyName(HANDLE hProcess, UINT32 *packageFamilyNameLength, PWSTR packageFamilyName); +WINBASEAPI LONG WINAPI GetPackageFamilyNameFromToken(HANDLE token, UINT32 *packageFamilyNameLength, PWSTR packageFamilyName); +WINBASEAPI LONG WINAPI GetPackagePath(const PACKAGE_ID *packageId, const UINT32 reserved, UINT32 *pathLength, PWSTR path); +WINBASEAPI LONG WINAPI GetPackagePathByFullName(PCWSTR packageFullName, UINT32 *pathLength, PWSTR path); +WINBASEAPI LONG WINAPI GetStagedPackagePathByFullName(PCWSTR packageFullName, UINT32 *pathLength, PWSTR path); + +#if NTDDI_VERSION >= NTDDI_WIN10_19H1 +typedef enum PackagePathType { + PackagePathType_Install = 0, + PackagePathType_Mutable = 1, + PackagePathType_Effective = 2 +#if NTDDI_VERSION >= NTDDI_WIN10_VB + ,PackagePathType_MachineExternal = 3 + ,PackagePathType_UserExternal = 4 + ,PackagePathType_EffectiveExternal = 5 +#endif +} PackagePathType; + +WINBASEAPI LONG WINAPI GetPackagePathByFullName2(PCWSTR packageFullName, PackagePathType packagePathType, UINT32 *pathLength, PWSTR path); +WINBASEAPI LONG WINAPI GetStagedPackagePathByFullName2(PCWSTR packageFullName, PackagePathType packagePathType, UINT32 *pathLength, PWSTR path); +WINBASEAPI LONG WINAPI GetCurrentPackageInfo2(const UINT32 flags, PackagePathType packagePathType, UINT32 *bufferLength, BYTE *buffer, UINT32 *count); +WINBASEAPI LONG WINAPI GetCurrentPackagePath2(PackagePathType packagePathType, UINT32 *pathLength, PWSTR path); + +#endif /* NTDDI_VERSION >= NTDDI_WIN10_19H1 */ + +WINBASEAPI LONG WINAPI GetCurrentApplicationUserModelId(UINT32 *applicationUserModelIdLength, PWSTR applicationUserModelId); +WINBASEAPI LONG WINAPI GetApplicationUserModelId(HANDLE hProcess, UINT32 *applicationUserModelIdLength, PWSTR applicationUserModelId); +WINBASEAPI LONG WINAPI GetApplicationUserModelIdFromToken(HANDLE token, UINT32 *applicationUserModelIdLength, PWSTR applicationUserModelId); +WINBASEAPI LONG WINAPI VerifyPackageFullName(PCWSTR packageFullName); +WINBASEAPI LONG WINAPI VerifyPackageFamilyName(PCWSTR packageFamilyName); +WINBASEAPI LONG WINAPI VerifyPackageId(const PACKAGE_ID *packageId); +WINBASEAPI LONG WINAPI VerifyApplicationUserModelId(PCWSTR applicationUserModelId); +WINBASEAPI LONG WINAPI VerifyPackageRelativeApplicationId(PCWSTR packageRelativeApplicationId); +WINBASEAPI LONG WINAPI PackageIdFromFullName(PCWSTR packageFullName, const UINT32 flags, UINT32 *bufferLength, BYTE *buffer); +WINBASEAPI LONG WINAPI PackageFullNameFromId(const PACKAGE_ID *packageId, UINT32 *packageFullNameLength, PWSTR packageFullName); +WINBASEAPI LONG WINAPI PackageFamilyNameFromId(const PACKAGE_ID *packageId, UINT32 *packageFamilyNameLength, PWSTR packageFamilyName); +WINBASEAPI LONG WINAPI PackageFamilyNameFromFullName(PCWSTR packageFullName, UINT32 *packageFamilyNameLength, PWSTR packageFamilyName); +WINBASEAPI LONG WINAPI PackageNameAndPublisherIdFromFamilyName(PCWSTR packageFamilyName, UINT32 *packageNameLength, PWSTR packageName, UINT32 *packagePublisherIdLength, PWSTR packagePublisherId); +WINBASEAPI LONG WINAPI FormatApplicationUserModelId(PCWSTR packageFamilyName, PCWSTR packageRelativeApplicationId, UINT32 *applicationUserModelIdLength, PWSTR applicationUserModelId); +WINBASEAPI LONG WINAPI ParseApplicationUserModelId(PCWSTR applicationUserModelId, UINT32 *packageFamilyNameLength, PWSTR packageFamilyName, UINT32 *packageRelativeApplicationIdLength, PWSTR packageRelativeApplicationId); +WINBASEAPI LONG WINAPI GetPackagesByPackageFamily(PCWSTR packageFamilyName, UINT32 *count, PWSTR *packageFullNames, UINT32 *bufferLength, WCHAR *buffer); +WINBASEAPI LONG WINAPI FindPackagesByPackageFamily(PCWSTR packageFamilyName, UINT32 packageFilters, UINT32 *count, PWSTR *packageFullNames, UINT32 *bufferLength, WCHAR *buffer, UINT32 *packageProperties); + +typedef enum PackageOrigin { + PackageOrigin_Unknown = 0, + PackageOrigin_Unsigned = 1, + PackageOrigin_Inbox = 2, + PackageOrigin_Store = 3, + PackageOrigin_DeveloperUnsigned = 4, + PackageOrigin_DeveloperSigned = 5, + PackageOrigin_LineOfBusiness = 6 +} PackageOrigin; + +WINBASEAPI LONG WINAPI GetStagedPackageOrigin(PCWSTR packageFullName, PackageOrigin *origin); + +#define PACKAGE_PROPERTY_FRAMEWORK 0x00000001 +#define PACKAGE_PROPERTY_RESOURCE 0x00000002 +#define PACKAGE_PROPERTY_BUNDLE 0x00000004 +#define PACKAGE_PROPERTY_OPTIONAL 0x00000008 +#define PACKAGE_FILTER_HEAD 0x00000010 +#define PACKAGE_FILTER_DIRECT 0x00000020 +#define PACKAGE_FILTER_RESOURCE 0x00000040 +#define PACKAGE_FILTER_BUNDLE 0x00000080 +#define PACKAGE_INFORMATION_BASIC 0x00000000 +#define PACKAGE_INFORMATION_FULL 0x00000100 +#define PACKAGE_PROPERTY_DEVELOPMENT_MODE 0x00010000 +#define PACKAGE_FILTER_OPTIONAL 0x00020000 +#define PACKAGE_PROPERTY_IS_IN_RELATED_SET 0x00040000 +#define PACKAGE_FILTER_IS_IN_RELATED_SET PACKAGE_PROPERTY_IS_IN_RELATED_SET +#define PACKAGE_PROPERTY_STATIC 0x00080000 +#define PACKAGE_FILTER_STATIC PACKAGE_PROPERTY_STATIC +#define PACKAGE_PROPERTY_DYNAMIC 0x00100000 +#define PACKAGE_FILTER_DYNAMIC PACKAGE_PROPERTY_DYNAMIC +#if NTDDI_VERSION >= NTDDI_WIN10_MN +#define PACKAGE_PROPERTY_HOSTRUNTIME 0x00200000 +#define PACKAGE_FILTER_HOSTRUNTIME PACKAGE_PROPERTY_HOSTRUNTIME +#endif + +typedef struct _PACKAGE_INFO_REFERENCE { + void *reserved; +} PACKAGE_INFO_REFERENCE; + +#include <pshpack4.h> + +typedef struct PACKAGE_INFO { + UINT32 reserved; + UINT32 flags; + PWSTR path; + PWSTR packageFullName; + PWSTR packageFamilyName; + PACKAGE_ID packageId; +} PACKAGE_INFO; + +#include <poppack.h> + +WINBASEAPI LONG WINAPI GetCurrentPackageInfo(const UINT32 flags, UINT32 *bufferLength, BYTE *buffer, UINT32 *count); +WINBASEAPI LONG WINAPI OpenPackageInfoByFullName(PCWSTR packageFullName, const UINT32 reserved, PACKAGE_INFO_REFERENCE *packageInfoReference); +WINBASEAPI LONG WINAPI OpenPackageInfoByFullNameForUser(PSID userSid, PCWSTR packageFullName, const UINT32 reserved, PACKAGE_INFO_REFERENCE *packageInfoReference); +WINBASEAPI LONG WINAPI ClosePackageInfo(PACKAGE_INFO_REFERENCE packageInfoReference); +WINBASEAPI LONG WINAPI GetPackageInfo(PACKAGE_INFO_REFERENCE packageInfoReference, const UINT32 flags, UINT32 *bufferLength, BYTE *buffer, UINT32 *count); +WINBASEAPI LONG WINAPI GetPackageApplicationIds(PACKAGE_INFO_REFERENCE packageInfoReference, UINT32 *bufferLength, BYTE *buffer, UINT32 *count); + +#if NTDDI_VERSION >= NTDDI_WIN10_19H1 +WINBASEAPI LONG WINAPI GetPackageInfo2(PACKAGE_INFO_REFERENCE packageInfoReference, const UINT32 flags, PackagePathType packagePathType, UINT32 *bufferLength, BYTE *buffer, UINT32 *count); +#endif + +WINBASEAPI HRESULT WINAPI CheckIsMSIXPackage(PCWSTR packageFullName, WINBOOL *isMSIXPackage); + +#if NTDDI_VERSION >= NTDDI_WIN10_CO + +typedef enum CreatePackageDependencyOptions { + CreatePackageDependencyOptions_None = 0, + CreatePackageDependencyOptions_DoNotVerifyDependencyResolution = 0x00000001, + CreatePackageDependencyOptions_ScopeIsSystem = 0x00000002 +} CreatePackageDependencyOptions; +DEFINE_ENUM_FLAG_OPERATORS(CreatePackageDependencyOptions) + +typedef enum PackageDependencyLifetimeKind { + PackageDependencyLifetimeKind_Process = 0, + PackageDependencyLifetimeKind_FilePath = 1, + PackageDependencyLifetimeKind_RegistryKey = 2 +} PackageDependencyLifetimeKind; + +typedef enum AddPackageDependencyOptions { + AddPackageDependencyOptions_None = 0, + AddPackageDependencyOptions_PrependIfRankCollision = 0x00000001 +} AddPackageDependencyOptions; +DEFINE_ENUM_FLAG_OPERATORS(AddPackageDependencyOptions) + +#define PACKAGE_DEPENDENCY_RANK_DEFAULT 0 + +typedef enum PackageDependencyProcessorArchitectures { + PackageDependencyProcessorArchitectures_None = 0, + PackageDependencyProcessorArchitectures_Neutral = 0x00000001, + PackageDependencyProcessorArchitectures_X86 = 0x00000002, + PackageDependencyProcessorArchitectures_X64 = 0x00000004, + PackageDependencyProcessorArchitectures_Arm = 0x00000008, + PackageDependencyProcessorArchitectures_Arm64 = 0x00000010, + PackageDependencyProcessorArchitectures_X86A64 = 0x00000020 +} PackageDependencyProcessorArchitectures; +DEFINE_ENUM_FLAG_OPERATORS(PackageDependencyProcessorArchitectures) + +DECLARE_HANDLE(PACKAGEDEPENDENCY_CONTEXT); + +WINBASEAPI HRESULT WINAPI TryCreatePackageDependency(PSID user, PCWSTR packageFamilyName, PACKAGE_VERSION minVersion, PackageDependencyProcessorArchitectures packageDependencyProcessorArchitectures, PackageDependencyLifetimeKind lifetimeKind, PCWSTR lifetimeArtifact, CreatePackageDependencyOptions options, PWSTR *packageDependencyId); +WINBASEAPI HRESULT WINAPI DeletePackageDependency(PCWSTR packageDependencyId); +WINBASEAPI HRESULT WINAPI AddPackageDependency(PCWSTR packageDependencyId, INT32 rank, AddPackageDependencyOptions options, PACKAGEDEPENDENCY_CONTEXT *packageDependencyContext, PWSTR *packageFullName); +WINBASEAPI HRESULT WINAPI RemovePackageDependency(PACKAGEDEPENDENCY_CONTEXT packageDependencyContext); +WINBASEAPI HRESULT WINAPI GetResolvedPackageFullNameForPackageDependency(PCWSTR packageDependencyId, PWSTR *packageFullName); +WINBASEAPI HRESULT WINAPI GetIdForPackageDependencyContext(PACKAGEDEPENDENCY_CONTEXT packageDependencyContext, PWSTR *packageDependencyId); + +#endif /* NTDDI_VERSION >= NTDDI_WIN10_CO */ + +#if NTDDI_VERSION >= NTDDI_WIN10_NI +WINBASEAPI UINT32 WINAPI GetPackageGraphRevisionId(void); +#endif + +typedef enum AppPolicyLifecycleManagement { + AppPolicyLifecycleManagement_Unmanaged = 0, + AppPolicyLifecycleManagement_Managed = 1 +} AppPolicyLifecycleManagement; + +WINBASEAPI LONG WINAPI AppPolicyGetLifecycleManagement(HANDLE processToken, AppPolicyLifecycleManagement *policy); + +typedef enum AppPolicyWindowingModel { + AppPolicyWindowingModel_None = 0, + AppPolicyWindowingModel_Universal = 1, + AppPolicyWindowingModel_ClassicDesktop = 2, + AppPolicyWindowingModel_ClassicPhone = 3 +} AppPolicyWindowingModel; + +WINBASEAPI LONG WINAPI AppPolicyGetWindowingModel(HANDLE processToken, AppPolicyWindowingModel *policy); + +typedef enum AppPolicyMediaFoundationCodecLoading { + AppPolicyMediaFoundationCodecLoading_All = 0, + AppPolicyMediaFoundationCodecLoading_InboxOnly = 1 +} AppPolicyMediaFoundationCodecLoading; + +WINBASEAPI LONG WINAPI AppPolicyGetMediaFoundationCodecLoading(HANDLE processToken, AppPolicyMediaFoundationCodecLoading *policy); + +typedef enum AppPolicyClrCompat { + AppPolicyClrCompat_Other = 0, + AppPolicyClrCompat_ClassicDesktop = 1, + AppPolicyClrCompat_Universal = 2, + AppPolicyClrCompat_PackagedDesktop = 3 +} AppPolicyClrCompat; + +WINBASEAPI LONG WINAPI AppPolicyGetClrCompat(HANDLE processToken, AppPolicyClrCompat *policy); + +typedef enum AppPolicyThreadInitializationType { + AppPolicyThreadInitializationType_None = 0, + AppPolicyThreadInitializationType_InitializeWinRT = 1 +} AppPolicyThreadInitializationType; + +WINBASEAPI LONG WINAPI AppPolicyGetThreadInitializationType(HANDLE processToken, AppPolicyThreadInitializationType *policy); + +typedef enum AppPolicyShowDeveloperDiagnostic { + AppPolicyShowDeveloperDiagnostic_None = 0, + AppPolicyShowDeveloperDiagnostic_ShowUI = 1 +} AppPolicyShowDeveloperDiagnostic; + +WINBASEAPI LONG WINAPI AppPolicyGetShowDeveloperDiagnostic(HANDLE processToken, AppPolicyShowDeveloperDiagnostic *policy); + +typedef enum AppPolicyProcessTerminationMethod { + AppPolicyProcessTerminationMethod_ExitProcess = 0, + AppPolicyProcessTerminationMethod_TerminateProcess = 1 +} AppPolicyProcessTerminationMethod; + +WINBASEAPI LONG WINAPI AppPolicyGetProcessTerminationMethod(HANDLE processToken, AppPolicyProcessTerminationMethod *policy); + +typedef enum AppPolicyCreateFileAccess { + AppPolicyCreateFileAccess_Full = 0, + AppPolicyCreateFileAccess_Limited = 1 +} AppPolicyCreateFileAccess; + +WINBASEAPI LONG WINAPI AppPolicyGetCreateFileAccess(HANDLE processToken, AppPolicyCreateFileAccess *policy); + +#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ + +#if defined(__cplusplus) +} +#endif + +#endif /* _APPMODEL_H_ */ diff --git a/mingw-w64-headers/include/minappmodel.h b/mingw-w64-headers/include/minappmodel.h new file mode 100644 index 0000000..d123a35 --- /dev/null +++ b/mingw-w64-headers/include/minappmodel.h @@ -0,0 +1,48 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifdef _MINAPPMODEL_H_ +#define _MINAPPMODEL_H_ + +#include <winapifamily.h> + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) + +#define PACKAGE_ARCHITECTURE_MIN_LENGTH 3 +#define PACKAGE_ARCHITECTURE_MAX_LENGTH 7 +#define PACKAGE_VERSION_MIN_LENGTH 7 +#define PACKAGE_VERSION_MAX_LENGTH 23 +#define PACKAGE_NAME_MIN_LENGTH 3 +#define PACKAGE_NAME_MAX_LENGTH 50 +#define PACKAGE_PUBLISHER_MIN_LENGTH 3 +#define PACKAGE_PUBLISHER_MAX_LENGTH 8192 +#define PACKAGE_PUBLISHERID_MIN_LENGTH 13 +#define PACKAGE_PUBLISHERID_MAX_LENGTH 13 +#define PACKAGE_RESOURCEID_MIN_LENGTH 0 +#define PACKAGE_RESOURCEID_MAX_LENGTH 30 +#define PACKAGE_FULL_NAME_MIN_LENGTH (PACKAGE_NAME_MIN_LENGTH + 1 + PACKAGE_VERSION_MIN_LENGTH + 1 + PACKAGE_ARCHITECTURE_MIN_LENGTH + 1 + PACKAGE_RESOURCEID_MIN_LENGTH + 1 + PACKAGE_PUBLISHERID_MIN_LENGTH) +#define PACKAGE_FULL_NAME_MAX_LENGTH (PACKAGE_NAME_MAX_LENGTH + 1 + PACKAGE_VERSION_MAX_LENGTH + 1 + PACKAGE_ARCHITECTURE_MAX_LENGTH + 1 + PACKAGE_RESOURCEID_MAX_LENGTH + 1 + PACKAGE_PUBLISHERID_MAX_LENGTH) +#define PACKAGE_FAMILY_NAME_MIN_LENGTH (PACKAGE_NAME_MIN_LENGTH + 1 + PACKAGE_PUBLISHERID_MIN_LENGTH) +#define PACKAGE_FAMILY_NAME_MAX_LENGTH (PACKAGE_NAME_MAX_LENGTH + 1 + PACKAGE_PUBLISHERID_MAX_LENGTH) + +#define PACKAGE_MIN_DEPENDENCIES 0 +#define PACKAGE_MAX_DEPENDENCIES 128 +#define PACKAGE_FAMILY_MIN_RESOURCE_PACKAGES 0 +#define PACKAGE_FAMILY_MAX_RESOURCE_PACKAGES 512 +#define PACKAGE_GRAPH_MIN_SIZE 1 +#define PACKAGE_GRAPH_MAX_SIZE (1 + PACKAGE_MAX_DEPENDENCIES + PACKAGE_FAMILY_MAX_RESOURCE_PACKAGES) + +#define PACKAGE_APPLICATIONS_MIN_COUNT 0 +#define PACKAGE_APPLICATIONS_MAX_COUNT 100 + +#define PACKAGE_RELATIVE_APPLICATION_ID_MIN_LENGTH (1 + 1) +#define PACKAGE_RELATIVE_APPLICATION_ID_MAX_LENGTH (64 + 1) +#define APPLICATION_USER_MODEL_ID_MIN_LENGTH (PACKAGE_FAMILY_NAME_MIN_LENGTH + 1 + PACKAGE_RELATIVE_APPLICATION_ID_MIN_LENGTH) +#define APPLICATION_USER_MODEL_ID_MAX_LENGTH (PACKAGE_FAMILY_NAME_MAX_LENGTH + 1 + PACKAGE_RELATIVE_APPLICATION_ID_MAX_LENGTH) + +#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ + +#endif /* _MINAPPMODEL_H_ */ -- 2.37.0
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
