Здравствуйте, Vertecs, Вы писали:
V>V> Error = NtCreateFile(&hFile,GENERIC_WRITE|GENERIC_READ,&ofs, &State,0,FILE_ATTRIBUTE_NORMAL,0,0/*FILE_SUPERSEDE*/,0,0,0);
V> printf("%08X %08X:hFile\r\n", Error, hFile); // Здесь EAX возвращает 0 и в hFile загружается дескриптор файла.
V> Error = NtCreateSection(&hSection, SECTION_ALL_ACCESS, NULL, NULL, PAGE_EXECUTE_READWRITE, SEC_IMAGE, hFile);
V> printf("%08X %08X:hSection\r\n", Error, hSection); // Здесь уже возвращается код 0xC0000022 и я не понимаю, почему...
Если при создании секции запрашивается исполнение (PAGE_
EXECUTE_READWRITE), то и при открытии надо его запрашивать (GENERIC_EXECUTE, или хотя бы FILE_EXECUTE) для описателя файла.