Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenntdllp.h
Go to the documentation of this file.
00001 /* 00002 * COPYRIGHT: See COPYING in the top level directory 00003 * PROJECT: ReactOS System Libraries 00004 * FILE: dll/ntdll/include/ntdllp.h 00005 * PURPOSE: Native Libary Internal Header 00006 * PROGRAMMER: Alex Ionescu (alex@relsoft.net) 00007 */ 00008 00009 /* INCLUDES ******************************************************************/ 00010 00011 #define LDR_HASH_TABLE_ENTRIES 32 00012 #define LDR_GET_HASH_ENTRY(x) (RtlUpcaseUnicodeChar((x)) & (LDR_HASH_TABLE_ENTRIES - 1)) 00013 00014 /* LdrpUpdateLoadCount2 flags */ 00015 #define LDRP_UPDATE_REFCOUNT 0x01 00016 #define LDRP_UPDATE_DEREFCOUNT 0x02 00017 #define LDRP_UPDATE_PIN 0x03 00018 00019 /* Loader flags */ 00020 #define IMAGE_LOADER_FLAGS_COMPLUS 0x00000001 00021 #define IMAGE_LOADER_FLAGS_SYSTEM_GLOBAL 0x01000000 00022 00023 /* Page heap flags */ 00024 #define DPH_FLAG_DLL_NOTIFY 0x40 00025 00026 typedef struct _LDRP_TLS_DATA 00027 { 00028 LIST_ENTRY TlsLinks; 00029 IMAGE_TLS_DIRECTORY TlsDirectory; 00030 } LDRP_TLS_DATA, *PLDRP_TLS_DATA; 00031 00032 /* Global data */ 00033 extern RTL_CRITICAL_SECTION LdrpLoaderLock; 00034 extern BOOLEAN LdrpInLdrInit; 00035 extern LIST_ENTRY LdrpHashTable[LDR_HASH_TABLE_ENTRIES]; 00036 extern BOOLEAN ShowSnaps; 00037 extern UNICODE_STRING LdrpDefaultPath; 00038 extern HANDLE LdrpKnownDllObjectDirectory; 00039 extern ULONG LdrpNumberOfProcessors; 00040 extern ULONG LdrpFatalHardErrorCount; 00041 extern PUNICODE_STRING LdrpTopLevelDllBeingLoaded; 00042 extern PLDR_DATA_TABLE_ENTRY LdrpCurrentDllInitializer; 00043 extern UNICODE_STRING LdrApiDefaultExtension; 00044 extern BOOLEAN LdrpLdrDatabaseIsSetup; 00045 extern ULONG LdrpActiveUnloadCount; 00046 extern BOOLEAN LdrpShutdownInProgress; 00047 extern UNICODE_STRING LdrpKnownDllPath; 00048 extern PLDR_DATA_TABLE_ENTRY LdrpGetModuleHandleCache, LdrpLoadedDllHandleCache; 00049 extern ULONG RtlpDphGlobalFlags; 00050 00051 /* ldrinit.c */ 00052 NTSTATUS NTAPI LdrpRunInitializeRoutines(IN PCONTEXT Context OPTIONAL); 00053 VOID NTAPI LdrpInitializeThread(IN PCONTEXT Context); 00054 NTSTATUS NTAPI LdrpInitializeTls(VOID); 00055 NTSTATUS NTAPI LdrpAllocateTls(VOID); 00056 VOID NTAPI LdrpFreeTls(VOID); 00057 VOID NTAPI LdrpCallTlsInitializers(PVOID BaseAddress, ULONG Reason); 00058 BOOLEAN NTAPI LdrpCallInitRoutine(PDLL_INIT_ROUTINE EntryPoint, PVOID BaseAddress, ULONG Reason, PVOID Context); 00059 NTSTATUS NTAPI LdrpInitializeProcess(PCONTEXT Context, PVOID SystemArgument1); 00060 VOID NTAPI LdrpInitFailure(NTSTATUS Status); 00061 VOID NTAPI LdrpValidateImageForMp(IN PLDR_DATA_TABLE_ENTRY LdrDataTableEntry); 00062 VOID NTAPI LdrpEnsureLoaderLockIsHeld(); 00063 00064 /* ldrpe.c */ 00065 NTSTATUS 00066 NTAPI 00067 LdrpSnapThunk(IN PVOID ExportBase, 00068 IN PVOID ImportBase, 00069 IN PIMAGE_THUNK_DATA OriginalThunk, 00070 IN OUT PIMAGE_THUNK_DATA Thunk, 00071 IN PIMAGE_EXPORT_DIRECTORY ExportEntry, 00072 IN ULONG ExportSize, 00073 IN BOOLEAN Static, 00074 IN LPSTR DllName); 00075 00076 NTSTATUS NTAPI 00077 LdrpWalkImportDescriptor(IN LPWSTR DllPath OPTIONAL, 00078 IN PLDR_DATA_TABLE_ENTRY LdrEntry); 00079 00080 00081 /* ldrutils.c */ 00082 NTSTATUS NTAPI 00083 LdrpGetProcedureAddress(IN PVOID BaseAddress, 00084 IN PANSI_STRING Name, 00085 IN ULONG Ordinal, 00086 OUT PVOID *ProcedureAddress, 00087 IN BOOLEAN ExecuteInit); 00088 00089 PLDR_DATA_TABLE_ENTRY NTAPI 00090 LdrpAllocateDataTableEntry(IN PVOID BaseAddress); 00091 00092 VOID NTAPI 00093 LdrpInsertMemoryTableEntry(IN PLDR_DATA_TABLE_ENTRY LdrEntry); 00094 00095 NTSTATUS NTAPI 00096 LdrpLoadDll(IN BOOLEAN Redirected, 00097 IN PWSTR DllPath OPTIONAL, 00098 IN PULONG DllCharacteristics OPTIONAL, 00099 IN PUNICODE_STRING DllName, 00100 OUT PVOID *BaseAddress, 00101 IN BOOLEAN CallInit); 00102 00103 VOID NTAPI 00104 LdrpUpdateLoadCount2(IN PLDR_DATA_TABLE_ENTRY LdrEntry, 00105 IN ULONG Flags); 00106 00107 ULONG NTAPI 00108 LdrpClearLoadInProgress(); 00109 00110 NTSTATUS 00111 NTAPI 00112 LdrpSetProtection(PVOID ViewBase, 00113 BOOLEAN Restore); 00114 00115 BOOLEAN 00116 NTAPI 00117 LdrpCheckForLoadedDllHandle(IN PVOID Base, 00118 OUT PLDR_DATA_TABLE_ENTRY *LdrEntry); 00119 00120 BOOLEAN NTAPI 00121 LdrpCheckForLoadedDll(IN PWSTR DllPath, 00122 IN PUNICODE_STRING DllName, 00123 IN BOOLEAN Flag, 00124 IN BOOLEAN RedirectedDll, 00125 OUT PLDR_DATA_TABLE_ENTRY *LdrEntry); 00126 00127 NTSTATUS NTAPI 00128 LdrpMapDll(IN PWSTR SearchPath OPTIONAL, 00129 IN PWSTR DllPath2, 00130 IN PWSTR DllName OPTIONAL, 00131 IN PULONG DllCharacteristics, 00132 IN BOOLEAN Static, 00133 IN BOOLEAN Redirect, 00134 OUT PLDR_DATA_TABLE_ENTRY *DataTableEntry); 00135 00136 PVOID NTAPI 00137 LdrpFetchAddressOfEntryPoint(PVOID ImageBase); 00138 00139 VOID NTAPI 00140 LdrpFreeUnicodeString(PUNICODE_STRING String); 00141 00142 00143 /* FIXME: Cleanup this mess */ 00144 typedef NTSTATUS (NTAPI *PEPFUNC)(PPEB); 00145 NTSTATUS LdrMapSections(HANDLE ProcessHandle, 00146 PVOID ImageBase, 00147 HANDLE SectionHandle, 00148 PIMAGE_NT_HEADERS NTHeaders); 00149 NTSTATUS LdrMapNTDllForProcess(HANDLE ProcessHandle, 00150 PHANDLE NTDllSectionHandle); 00151 ULONG 00152 LdrpGetResidentSize(PIMAGE_NT_HEADERS NTHeaders); 00153 00154 NTSTATUS 00155 NTAPI 00156 LdrpLoadImportModule(IN PWSTR DllPath OPTIONAL, 00157 IN LPSTR ImportName, 00158 IN PVOID DllBase, 00159 OUT PLDR_DATA_TABLE_ENTRY *DataTableEntry, 00160 OUT PBOOLEAN Existing); 00161 00162 VOID 00163 NTAPI 00164 LdrpFinalizeAndDeallocateDataTableEntry(IN PLDR_DATA_TABLE_ENTRY Entry); 00165 00166 extern HANDLE WindowsApiPort; 00167 00168 /* EOF */ Generated on Sun May 27 2012 04:22:34 for ReactOS by
1.7.6.1
|