NTSTATUS PhLoadMappedImage( _In_opt_ PWSTR FileName, _In_opt_ HANDLE FileHandle, _In_ BOOLEAN ReadOnly, _Out_ PPH_MAPPED_IMAGE MappedImage ) { NTSTATUS status; status = PhMapViewOfEntireFile( FileName, FileHandle, ReadOnly, &MappedImage->ViewBase, &MappedImage->Size ); if (NT_SUCCESS(status)) { status = PhInitializeMappedImage( MappedImage, MappedImage->ViewBase, MappedImage->Size ); if (!NT_SUCCESS(status)) { NtUnmapViewOfSection(NtCurrentProcess(), MappedImage->ViewBase); } } return status; }
NTSTATUS PhLoadMappedArchive( _In_opt_ PWSTR FileName, _In_opt_ HANDLE FileHandle, _In_ BOOLEAN ReadOnly, _Out_ PPH_MAPPED_ARCHIVE MappedArchive ) { NTSTATUS status; status = PhMapViewOfEntireFile( FileName, FileHandle, ReadOnly, &MappedArchive->ViewBase, &MappedArchive->Size ); if (NT_SUCCESS(status)) { status = PhInitializeMappedArchive( MappedArchive, MappedArchive->ViewBase, MappedArchive->Size ); if (!NT_SUCCESS(status)) { PhUnloadMappedArchive(MappedArchive); } } return status; }