Пример #1
0
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;
}
Пример #2
0
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;
}