[NTDLL:LDR]

- Implement LdrSetDllManifestProber
CORE-6354 CORE-9298

svn path=/trunk/; revision=66522
This commit is contained in:
Thomas Faber 2015-03-01 15:34:06 +00:00
parent bf6e7cd971
commit bbe66391dc
4 changed files with 23 additions and 5 deletions

View file

@ -21,6 +21,7 @@ LONG LdrpLoaderLockAcquisitonCount;
BOOLEAN LdrpShowRecursiveLoads, LdrpBreakOnRecursiveDllLoads;
UNICODE_STRING LdrApiDefaultExtension = RTL_CONSTANT_STRING(L".DLL");
ULONG AlternateResourceModuleCount;
extern PLDR_MANIFEST_PROBER_ROUTINE LdrpManifestProberRoutine;
/* FUNCTIONS *****************************************************************/
@ -69,9 +70,10 @@ LdrAccessOutOfProcessResource(IN PVOID Unknown,
VOID
NTAPI
LdrSetDllManifestProber(IN PVOID ProberFunction)
LdrSetDllManifestProber(
_In_ PLDR_MANIFEST_PROBER_ROUTINE Routine)
{
UNIMPLEMENTED;
LdrpManifestProberRoutine = Routine;
}
BOOLEAN

View file

@ -15,7 +15,7 @@
/* GLOBALS *******************************************************************/
PVOID LdrpManifestProberRoutine;
PLDR_MANIFEST_PROBER_ROUTINE LdrpManifestProberRoutine;
ULONG LdrpNormalSnap;
/* FUNCTIONS *****************************************************************/

View file

@ -102,6 +102,11 @@ Author:
#define LDR_IS_IMAGEMAPPING(handle) (((ULONG_PTR)(handle)) & (ULONG_PTR)2)
#define LDR_IS_RESOURCE(handle) (LDR_IS_IMAGEMAPPING(handle) || LDR_IS_DATAFILE(handle))
//
// Activation Context
//
typedef PVOID PACTIVATION_CONTEXT;
//
// Loader Data stored in the PEB
//
@ -150,7 +155,7 @@ typedef struct _LDR_DATA_TABLE_ENTRY
ULONG TimeDateStamp;
PVOID LoadedImports;
};
PVOID EntryPointActivationContext;
PACTIVATION_CONTEXT EntryPointActivationContext;
PVOID PatchInformation;
} LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
@ -228,9 +233,15 @@ typedef struct _ALT_RESOURCE_MODULE
//
// Callback function for LdrEnumerateLoadedModules
//
typedef VOID (NTAPI LDR_ENUM_CALLBACK)(IN PLDR_DATA_TABLE_ENTRY ModuleInformation, _In_ PVOID Parameter, _Out_ BOOLEAN *Stop);
typedef VOID (NTAPI LDR_ENUM_CALLBACK)(_In_ PLDR_DATA_TABLE_ENTRY ModuleInformation, _In_ PVOID Parameter, _Out_ BOOLEAN *Stop);
typedef LDR_ENUM_CALLBACK *PLDR_ENUM_CALLBACK;
//
// Manifest prober routine set via LdrSetDllManifestProber
//
typedef NTSTATUS (NTAPI LDR_MANIFEST_PROBER_ROUTINE)(_In_ PVOID DllHandle, _In_ PCWSTR FullDllName, _Out_ PVOID *ActCtx);
typedef LDR_MANIFEST_PROBER_ROUTINE *PLDR_MANIFEST_PROBER_ROUTINE;
//
// DLL Main Routine
//

View file

@ -191,6 +191,11 @@ LdrQueryProcessModuleInformation(
_Out_ PULONG ReturnedSize
);
VOID
NTAPI
LdrSetDllManifestProber(
_In_ PLDR_MANIFEST_PROBER_ROUTINE Routine);
NTSTATUS
NTAPI
LdrShutdownProcess(