* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS System Libraries
* FILE: dll/ntdll/include/ntdllp.h
- * PURPOSE: Native Libary Internal Header
+ * PURPOSE: Native Library Internal Header
* PROGRAMMER: Alex Ionescu (alex@relsoft.net)
*/
-/* INCLUDES ******************************************************************/
+#pragma once
#define LDR_HASH_TABLE_ENTRIES 32
#define LDR_GET_HASH_ENTRY(x) (RtlUpcaseUnicodeChar((x)) & (LDR_HASH_TABLE_ENTRIES - 1))
/* Global data */
extern RTL_CRITICAL_SECTION LdrpLoaderLock;
extern BOOLEAN LdrpInLdrInit;
+extern PVOID LdrpHeap;
extern LIST_ENTRY LdrpHashTable[LDR_HASH_TABLE_ENTRIES];
extern BOOLEAN ShowSnaps;
extern UNICODE_STRING LdrpDefaultPath;
extern BOOLEAN LdrpShutdownInProgress;
extern UNICODE_STRING LdrpKnownDllPath;
extern PLDR_DATA_TABLE_ENTRY LdrpGetModuleHandleCache, LdrpLoadedDllHandleCache;
+extern BOOLEAN RtlpPageHeapEnabled;
extern ULONG RtlpDphGlobalFlags;
+extern BOOLEAN g_ShimsEnabled;
+extern PVOID g_pShimEngineModule;
+extern PVOID g_pfnSE_DllLoaded;
+extern PVOID g_pfnSE_DllUnloaded;
+extern PVOID g_pfnSE_InstallBeforeInit;
+extern PVOID g_pfnSE_InstallAfterInit;
+extern PVOID g_pfnSE_ProcessDying;
/* ldrinit.c */
NTSTATUS NTAPI LdrpRunInitializeRoutines(IN PCONTEXT Context OPTIONAL);
NTSTATUS NTAPI LdrpInitializeTls(VOID);
NTSTATUS NTAPI LdrpAllocateTls(VOID);
VOID NTAPI LdrpFreeTls(VOID);
-VOID NTAPI LdrpCallTlsInitializers(PVOID BaseAddress, ULONG Reason);
-BOOLEAN NTAPI LdrpCallInitRoutine(PDLL_INIT_ROUTINE EntryPoint, PVOID BaseAddress, ULONG Reason, PVOID Context);
-NTSTATUS NTAPI LdrpInitializeProcess(PCONTEXT Context, PVOID SystemArgument1);
+VOID NTAPI LdrpCallTlsInitializers(IN PLDR_DATA_TABLE_ENTRY LdrEntry, IN ULONG Reason);
+BOOLEAN NTAPI LdrpCallInitRoutine(IN PDLL_INIT_ROUTINE EntryPoint, IN PVOID BaseAddress, IN ULONG Reason, IN PVOID Context);
+NTSTATUS NTAPI LdrpInitializeProcess(IN PCONTEXT Context, IN PVOID SystemArgument1);
VOID NTAPI LdrpInitFailure(NTSTATUS Status);
VOID NTAPI LdrpValidateImageForMp(IN PLDR_DATA_TABLE_ENTRY LdrDataTableEntry);
-VOID NTAPI LdrpEnsureLoaderLockIsHeld();
+VOID NTAPI LdrpEnsureLoaderLockIsHeld(VOID);
/* ldrpe.c */
NTSTATUS
IN ULONG Flags);
ULONG NTAPI
-LdrpClearLoadInProgress();
+LdrpClearLoadInProgress(VOID);
NTSTATUS
NTAPI
VOID NTAPI
LdrpFreeUnicodeString(PUNICODE_STRING String);
+VOID NTAPI
+LdrpGetShimEngineInterface(VOID);
+
+VOID
+NTAPI
+LdrpLoadShimEngine(IN PWSTR ImageName,
+ IN PUNICODE_STRING ProcessImage,
+ IN PVOID pShimData);
+
+VOID NTAPI
+LdrpUnloadShimEngine(VOID);
+
+/* verifier.c */
+
+NTSTATUS NTAPI
+LdrpInitializeApplicationVerifierPackage(IN HANDLE KeyHandle,
+ IN PPEB Peb,
+ IN BOOLEAN SystemWide,
+ IN BOOLEAN ReadAdvancedOptions);
+
+NTSTATUS NTAPI
+AVrfInitializeVerifier(VOID);
+
+VOID NTAPI
+AVrfDllLoadNotification(IN PLDR_DATA_TABLE_ENTRY LdrEntry);
+
+VOID NTAPI
+AVrfDllUnloadNotification(IN PLDR_DATA_TABLE_ENTRY LdrEntry);
+
+VOID NTAPI
+AVrfPageHeapDllNotification(IN PLDR_DATA_TABLE_ENTRY LdrEntry);
+
/* FIXME: Cleanup this mess */
typedef NTSTATUS (NTAPI *PEPFUNC)(PPEB);
NTAPI
LdrpLoadImportModule(IN PWSTR DllPath OPTIONAL,
IN LPSTR ImportName,
- IN PVOID DllBase,
OUT PLDR_DATA_TABLE_ENTRY *DataTableEntry,
OUT PBOOLEAN Existing);