mirror of https://github.com/tongzx/nt5src
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.5 KiB
66 lines
1.5 KiB
#include "basepch.h"
|
|
#include "sxsapi.h"
|
|
|
|
DEFINE_PROCNAME_ENTRIES(sxs)
|
|
{
|
|
DLPENTRY(SxsBeginAssemblyInstall)
|
|
DLPENTRY(SxsEndAssemblyInstall)
|
|
DLPENTRY(SxsInstallAssemblyW)
|
|
};
|
|
|
|
DEFINE_PROCNAME_MAP(sxs)
|
|
|
|
static BOOL g_fSxsBeginAssemblyInstallFailed = FALSE;
|
|
static BOOL g_fSxsInstallAssemblyFailed = FALSE;
|
|
|
|
BOOL
|
|
WINAPI
|
|
SxsBeginAssemblyInstall(
|
|
IN DWORD Flags,
|
|
IN PSXS_INSTALLATION_FILE_COPY_CALLBACK InstallationCallback OPTIONAL,
|
|
IN PVOID InstallationContext OPTIONAL,
|
|
IN PSXS_IMPERSONATION_CALLBACK ImpersonationCallback OPTIONAL,
|
|
IN PVOID ImpersonationContext OPTIONAL,
|
|
OUT PVOID *InstallCookie
|
|
)
|
|
{
|
|
g_fSxsBeginAssemblyInstallFailed = TRUE;
|
|
if (InstallCookie != NULL) {
|
|
*InstallCookie = NULL;
|
|
}
|
|
SetLastError(ERROR_PROC_NOT_FOUND);
|
|
return FALSE;
|
|
}
|
|
|
|
BOOL
|
|
WINAPI
|
|
SxsInstallAssemblyW(
|
|
IN PVOID InstallCookie OPTIONAL,
|
|
IN DWORD Flags,
|
|
IN PCWSTR ManifestPath,
|
|
IN OUT PVOID Reserved OPTIONAL
|
|
)
|
|
{
|
|
g_fSxsInstallAssemblyFailed = TRUE;
|
|
SetLastError(ERROR_PROC_NOT_FOUND);
|
|
return FALSE;
|
|
}
|
|
|
|
BOOL
|
|
WINAPI
|
|
SxsEndAssemblyInstall(
|
|
IN PVOID InstallCookie,
|
|
IN DWORD Flags,
|
|
IN OUT PVOID Reserved OPTIONAL
|
|
)
|
|
{
|
|
if (g_fSxsBeginAssemblyInstallFailed || g_fSxsInstallAssemblyFailed) {
|
|
// stage this since it is dependent on headers that are published later in the build
|
|
#if defined(MYASSERT)
|
|
MYASSERT(Flags & SXS_END_ASSEMBLY_INSTALL_ABORT);
|
|
#endif
|
|
return TRUE;
|
|
}
|
|
SetLastError(ERROR_PROC_NOT_FOUND);
|
|
return FALSE;
|
|
}
|