#49 #52 add initialize/cleanup to achieve graceful shutdown

This commit is contained in:
Boring
2024-10-03 01:04:09 +08:00
parent 61a80f4ec9
commit 06968d8feb
15 changed files with 176 additions and 87 deletions
+13 -1
View File
@@ -61,7 +61,14 @@ NTSTATUS NTAPI LdrLoadDllMemoryExW(
__try {
*BaseAddress = nullptr;
if (LdrEntry)*LdrEntry = nullptr;
if (!RtlIsValidImageBuffer(BufferAddress, &BufferSize) && !(dwFlags & LOAD_FLAGS_PASS_IMAGE_CHECK))status = STATUS_INVALID_IMAGE_FORMAT;
if (!RtlIsValidImageBuffer(BufferAddress, &BufferSize) && !(dwFlags & LOAD_FLAGS_PASS_IMAGE_CHECK)) {
status = STATUS_INVALID_IMAGE_FORMAT;
}
if (MmpGlobalDataPtr == nullptr) {
status = STATUS_INVALID_PARAMETER;
}
}
__except (EXCEPTION_EXECUTE_HANDLER) {
status = GetExceptionCode();
@@ -229,6 +236,11 @@ NTSTATUS NTAPI LdrUnloadDllMemory(_In_ HMEMORYMODULE BaseAddress) {
break;
}
if (MmpGlobalDataPtr == nullptr) {
status = STATUS_INVALID_PARAMETER;
break;
}
//Mapping dll failed
if (!module->MappedDll) {
module->underUnload = true;