Необходимо проконтролировать директорию чтобы во время работы программы туда никакие файлы не кидали. Не совем понятно как юзать данную функцию. Код (Text): start proc local hdir:dword local iosb:IO_STATUS_BLOCK invoke CreateFileW,$CTW0("C:\\test"),GENERIC_READ or SYNCHRONIZE,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS or FILE_FLAG_OVERLAPPED,0 .if eax != -1 mov hdir,eax invoke ZwNotifyChangeDirectoryFile,hdir,0,0,0,addr iosb,addr Bufffer,sizeof Bufffer,FILE_NOTIFY_CHANGE_CREATION,0 invoke MessageBox,0,0,0,0 invoke CloseHandle,hdir .endif invoke ExitProcess,0 start endp Что не так делаю?
Не в обиду, но для чего все эти лишние телодвижения с недокументированными функциями? ИМХО, ошибки только плодить. Obtaining Directory Change Notifications
Товарищ уже подсказал. Вот, могет кому понадобиться: Код (Text): start proc local hdir:dword local iosb:IO_STATUS_BLOCK local oa:OBJECT_ATTRIBUTES invoke CreateFileW,$CTW0("C:\\test"),GENERIC_READ or SYNCHRONIZE,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS or FILE_FLAG_OVERLAPPED,0 .if eax == 0 mov hdir,eax invoke ZwNotifyChangeDirectoryFile,hdir,0,0,0,addr iosb,addr Bufffer,sizeof Bufffer,FILE_NOTIFY_CHANGE_FILE_NAME,0 @@: invoke ZwWaitForSingleObject,hdir,INFINITE,0 invoke ZwNotifyChangeDirectoryFile,hdir,0,0,0,addr iosb,addr Bufffer,sizeof Bufffer,3,1 invoke MessageBox,0,0,0,0 jmp @B invoke CloseHandle,hdir .endif invoke ExitProcess,0 start endp