NtExtendedSection
От: Аноним  
Дата: 28.05.13 08:14
Оценка:
Доброго времени суток.
Подскажите кто знает , по какой причине может не меняться размер выделенной секции.
Делаю так:

    if( !(pNtOpenSection = (_TNtOpenSection)(void*)GetProcAddress(GetModuleHandleA("ntdll.dll"),"NtOpenSection" ))) 
    {
        exit(1);
    }
    if( !(pRtlInitUnicodeString = (_TRtlInitUnicodeString)(void*)GetProcAddress(GetModuleHandleA("ntdll.dll"),"RtlInitUnicodeString" ))) 
    {
        exit(1);
    }
    if( !(pNtExtendSection = (_TNtExtendSection)(void*)GetProcAddress(GetModuleHandleA("ntdll.dll"),"NtExtendSection" ))) 
    {
        exit(1);
    }
    if( !(pNtCreateSection = (_TNtCreateSection)(void*)GetProcAddress(GetModuleHandleA("ntdll.dll"),"NtCreateSection" ))) 
    {
        exit(1);
    }
    OBJECT_ATTRIBUTES ionAttr;
    HANDLE TestMe;
    UNICODE_STRING Alpha;
    WCHAR SectionName[] = L"\\BaseNamedObjects\\LOL2";
    NTSTATUS status;
    ULONG ViewSize = 4096 * 2;
    Alpha.Buffer = (PWSTR)&SectionName;
    Alpha.Length = wcslen(SectionName)*sizeof(WCHAR);
    Alpha.MaximumLength = Alpha.Length + sizeof(WCHAR);
    InitializeObjectAttributes(&ionAttr,&Alpha,OBJ_CASE_INSENSITIVE ,NULL,NULL);
    LARGE_INTEGER TestSize;
    TestSize.QuadPart = ViewSize;
    status = pNtCreateSection(&TestMe,SECTION_ALL_ACCESS,&ionAttr,&TestSize,PAGE_READWRITE,SEC_COMMIT ,NULL);
    LARGE_INTEGER TestSize2;
    TestSize.QuadPart = 4096 * 2;
    status = pNtOpenSection(&TestMe,SECTION_EXTEND_SIZE,&ionAttr);
    status = pNtExtendSection(TestMe,&TestSize);

и в конце NtExtendSection терпит неудачу.... В целом мне нужно просто выделить именной участок памяти как объект ядра и не привязывать его к файлу. Заранее благодарен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.