Доброго времени суток.
Подскажите кто знает , по какой причине может не меняться размер выделенной секции.
Делаю так:
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 терпит неудачу.... В целом мне нужно просто выделить именной участок памяти как объект ядра и не привязывать его к файлу. Заранее благодарен.