PVOID APIENTRY EngMapModule( _In_ HANDLE h, _Out_ PULONG pulSize) { PFILEVIEW pFileView = (PFILEVIEW)h; NTSTATUS Status; pFileView->cjView = 0; /* FIXME: Use system space because ARM3 doesn't support executable sections yet */ Status = MmMapViewInSystemSpace(pFileView->pSection, &pFileView->pvKView, &pFileView->cjView); if (!NT_SUCCESS(Status)) { DPRINT1("Failed to map a section Status=0x%x\n", Status); *pulSize = 0; return NULL; } *pulSize = (ULONG)pFileView->cjView; return pFileView->pvKView; }
NTSTATUS MuLoadSystemDefaultNlsTables ( PMU_GLOBAL_DATA GlobalData ) { NTSTATUS status; PVOID secview = NULL; SIZE_T viewsize = 0; WCHAR AnsiFileIndex[MU_MAX_INDEX_LENGTH], OemFileIndex[MU_MAX_INDEX_LENGTH], LangFileIndex[MU_MAX_INDEX_LENGTH]; status = MuQueryNlsFileIndex(MU_REGPATH_CODEPAGE, MU_REGVAL_ACP, AnsiFileIndex); if (!NT_SUCCESS(status)) return status; status = MuQueryNlsFileIndex(MU_REGPATH_CODEPAGE, MU_REGVAL_OEMCP, OemFileIndex); if (!NT_SUCCESS(status)) return status; status = MuQueryNlsFileIndex(MU_REGPATH_LANGUAGE, MU_REGVAL_DEFAULT, LangFileIndex); if (!NT_SUCCESS(status)) return status; status = MuLoadNlsTableIntoContiguousBuffer(AnsiFileIndex, OemFileIndex, LangFileIndex, &GlobalData->SystemNlsSource); if (NT_SUCCESS(status)) { status = MmMapViewInSystemSpace(GlobalData->SystemNlsSource.TableSection, &secview, &viewsize); if (NT_SUCCESS(status)) { MuInitNlsTables((PUSHORT)((PUCHAR)secview + GlobalData->SystemNlsSource.AnsiTableOffset), (PUSHORT)((PUCHAR)secview + GlobalData->SystemNlsSource.OemTableOffset), (PUSHORT)((PUCHAR)secview + GlobalData->SystemNlsSource.LangTableOffset), &GlobalData->SystemNlsTableInfo); } } return status; }