Т.е. не совсем проблема. Реализовал программу которая ищет папку через ZwQueryDirectoryFile. Но дело в том, что пока стоит MessageBox для вывода путей - всё прекрасно работает, кода убираю - прога начинает всю память хавать... Не могли бы подсказать где я допустил ошибку? Спасибо. 340745242__SearchDir.asm
Flasher Сомневаюсь, что проблема в наличии/отсутствии MessageBox. Например, размер буфера, адресуемого первым параметром подпрограммы SearchDir - lpPath, равен черырем байтам (szLink db "C:\",0), а в коде присутствуют invoke lstrcat,lpPath, ....
q_q У мя есть точно такой же пример токо с функциями FindFirstFile\FindNextFile и там всё работало Вот нелепость-то какая, 3 дня назад всю ночь просидел и не смог найти ошибка, а шас с утричка взглянул и сразу хоп Впрочем, не без твоего участия, q_q Спасибо! p.s. Вдруг кому понадобится... 589968433__SearchDir.asm
Ух как давно это было... Зацените новый супер-пупер оптимизированный вариант Одна проблемка, при изменении Код (Text): invoke GlobalAlloc,0h or 40h,260 на Код (Text): push 260 call _AllocateHeap _AllocateHeap proc near arg_0 = dword ptr 4 assume fs:nothing mov eax,fs:18h push [esp+arg_0] mov eax,[eax+30h] push 0 push dword ptr [eax+18h] call RtlAllocateHeap retn 4 _AllocateHeap endp и соответственно Код (Text): invoke GlobalFree,esi на Код (Text): push esi call _FreeHeap _FreeHeap proc near arg_0 = dword ptr 4 assume fs:nothing mov eax,fs:18h ;ProcessHeap push [esp+arg_0] mov eax,[eax+30h] push 0 push dword ptr [eax+18h] call RtlFreeHeap retn 4 _FreeHeap endp Прога через определённое время вылетает. Не правильно выделяю память?
Увы, говорит "Память не может быть 'written'". Как ещё можно средствами ntdll добится положительного результата?