if (LdrpShutdownInProgress) return STATUS_SUCCESS;
/* Tell the Shim Engine */
- //if (ShimsEnabled)
- //{
- /* FIXME */
- //}
+ if (g_ShimsEnabled)
+ {
+ VOID(NTAPI *SE_ProcessDying)();
+ SE_ProcessDying = RtlDecodeSystemPointer(g_pfnSE_ProcessDying);
+ SE_ProcessDying();
+ }
/* Tell the world */
if (ShowSnaps)
{
/* Load the Shim Engine */
Peb->AppCompatInfo = NULL;
- //LdrpLoadShimEngine(OldShimData, ImagePathName, OldShimData);
- DPRINT1("We do not support shims yet\n");
+ LdrpLoadShimEngine(OldShimData, &ImagePathName, OldShimData);
}
else
{
return Status;
}
- /* FIXME: Unload the Shim Engine if it was loaded */
+ /* Notify Shim Engine */
+ if (g_ShimsEnabled)
+ {
+ VOID(NTAPI *SE_InstallAfterInit)(PUNICODE_STRING, PVOID);
+ SE_InstallAfterInit = RtlDecodeSystemPointer(g_pfnSE_InstallAfterInit);
+ SE_InstallAfterInit(&ImagePathName, OldShimData);
+ }
/* Check if we have a user-defined Post Process Routine */
if (NT_SUCCESS(Status) && Peb->PostProcessInitRoutine)