ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ntdllp.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.