You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.6 KiB
66 lines
1.6 KiB
#pragma once
|
|
|
|
#include "fusionarray.h"
|
|
#include "sxsapi.h"
|
|
#include "csecuritymetadata.h"
|
|
|
|
#define SXSRECOVER_MODE_MASK ( 0x0000000F )
|
|
#define SXSRECOVER_NOTHING ( 0x00000000 )
|
|
#define SXSRECOVER_MANIFEST ( 0x00000001 )
|
|
#define SXSRECOVER_ASSEMBLYMEMBER ( 0x00000002 )
|
|
#define SXSRECOVER_FULL_ASSEMBLY ( SXSRECOVER_ASSEMBLYMEMBER | SXSRECOVER_MANIFEST )
|
|
|
|
enum SxsRecoveryResult
|
|
{
|
|
Recover_OK,
|
|
Recover_ManifestMissing,
|
|
Recover_CatalogInvalid,
|
|
Recover_OneOrMoreFailed,
|
|
Recover_SourceMissing,
|
|
Recover_Unknown
|
|
};
|
|
|
|
#if DBG
|
|
#define ENUM_TO_STRING( x ) case x: return (L#x)
|
|
|
|
inline PCWSTR SxspRecoveryResultToString( const SxsRecoveryResult r )
|
|
{
|
|
switch ( r )
|
|
{
|
|
ENUM_TO_STRING( Recover_OK );
|
|
ENUM_TO_STRING( Recover_ManifestMissing );
|
|
ENUM_TO_STRING( Recover_CatalogInvalid );
|
|
ENUM_TO_STRING( Recover_OneOrMoreFailed );
|
|
ENUM_TO_STRING( Recover_SourceMissing );
|
|
ENUM_TO_STRING( Recover_Unknown );
|
|
}
|
|
|
|
return L"Bad SxsRecoveryResult value";
|
|
}
|
|
#undef ENUM_TO_STRING
|
|
#endif
|
|
|
|
class CAssemblyRecoveryInfo;
|
|
|
|
|
|
BOOL
|
|
SxspOpenAssemblyInstallationKey(
|
|
DWORD dwFlags,
|
|
DWORD dwAccess,
|
|
CRegKey &rhkAssemblyInstallation
|
|
);
|
|
|
|
BOOL
|
|
SxspRecoverAssembly(
|
|
IN const CAssemblyRecoveryInfo &AsmRecoverInfo,
|
|
OUT SxsRecoveryResult &rStatus
|
|
);
|
|
|
|
|
|
#define SXSP_ADD_ASSEMBLY_INSTALLATION_INFO_FLAG_REFRESH (0x00000001)
|
|
BOOL
|
|
SxspAddAssemblyInstallationInfo(
|
|
DWORD dwFlags,
|
|
IN CAssemblyRecoveryInfo& rcAssemblyInfo,
|
|
IN const CCodebaseInformation& rcCodebaeInfo
|
|
);
|