#endif
static BOOLEAN LdrpDllShutdownInProgress = FALSE;
-static HANDLE LdrpKnownDllsDirHandle = NULL;
-static UNICODE_STRING LdrpKnownDllPath = {0, 0, NULL};
+extern HANDLE LdrpKnownDllObjectDirectory;
+extern UNICODE_STRING LdrpKnownDllPath;
static PLDR_DATA_TABLE_ENTRY LdrpLastModule = NULL;
extern PLDR_DATA_TABLE_ENTRY LdrpImageEntry;
OBJ_CASE_INSENSITIVE,
NULL,
NULL);
- Status = NtOpenDirectoryObject(&LdrpKnownDllsDirHandle,
+ Status = NtOpenDirectoryObject(&LdrpKnownDllObjectDirectory,
DIRECTORY_QUERY | DIRECTORY_TRAVERSE,
&ObjectAttributes);
if (!NT_SUCCESS(Status))
{
DPRINT("NtOpenDirectoryObject() failed (Status %lx)\n", Status);
- LdrpKnownDllsDirHandle = NULL;
+ LdrpKnownDllObjectDirectory = NULL;
return;
}
MAX_PATH * sizeof(WCHAR));
if (LinkTarget.Buffer == NULL)
{
- NtClose(LdrpKnownDllsDirHandle);
- LdrpKnownDllsDirHandle = NULL;
+ NtClose(LdrpKnownDllObjectDirectory);
+ LdrpKnownDllObjectDirectory = NULL;
return;
}
InitializeObjectAttributes(&ObjectAttributes,
&Name,
OBJ_CASE_INSENSITIVE,
- LdrpKnownDllsDirHandle,
+ LdrpKnownDllObjectDirectory,
NULL);
Status = NtOpenSymbolicLinkObject(&LinkHandle,
SYMBOLIC_LINK_ALL_ACCESS,
if (!NT_SUCCESS(Status))
{
RtlFreeUnicodeString(&LinkTarget);
- NtClose(LdrpKnownDllsDirHandle);
- LdrpKnownDllsDirHandle = NULL;
+ NtClose(LdrpKnownDllObjectDirectory);
+ LdrpKnownDllObjectDirectory = NULL;
return;
}
if (!NT_SUCCESS(Status))
{
RtlFreeUnicodeString(&LinkTarget);
- NtClose(LdrpKnownDllsDirHandle);
- LdrpKnownDllsDirHandle = NULL;
+ NtClose(LdrpKnownDllObjectDirectory);
+ LdrpKnownDllObjectDirectory = NULL;
}
RtlCreateUnicodeString(&LdrpKnownDllPath,
DPRINT("LdrpMapKnownDll() called\n");
- if (LdrpKnownDllsDirHandle == NULL)
+ if (LdrpKnownDllObjectDirectory == NULL)
{
DPRINT("Invalid 'KnownDlls' directory\n");
return STATUS_UNSUCCESSFUL;
InitializeObjectAttributes(&ObjectAttributes,
DllName,
OBJ_CASE_INSENSITIVE,
- LdrpKnownDllsDirHandle,
+ LdrpKnownDllObjectDirectory,
NULL);
Status = NtOpenSection(SectionHandle,
SECTION_MAP_READ | SECTION_MAP_WRITE | SECTION_MAP_EXECUTE,
* NOTE
*
*/
-static NTSTATUS
+NTSTATUS
LdrPerformRelocations(PIMAGE_NT_HEADERS NTHeaders,
PVOID ImageBase)
{