/* * $Id: //devel/tools/main/backstealth/ntlibs.lnt#1 $ * * These describe the Win32 library, and it can be reused on most * any project independent of what other options are included. */ // Win32 stuff -function(exit, ExitProcess) -sem(ReadFile, 1p, 2p, (4p||5p) && (3n==2P)) -sem(ReadFileEx, 1p, 2p, 4p, 5p, 3n==2P) -sem(WriteFile, 1p, 2p, (4p||5p) && (3n<=2P)) -sem(WriteFileEx, 1p, 2p, 4p, 5p, 3n<=2P) // File I/O -sem(CancelIo, 1p) -sem(CopyFileA, 1p, 2p) -sem(CopyFileW, 1p, 2p) -sem(CopyFileExA, 1p, 2p) -sem(CopyFileExW, 1p, 2p) -sem(CreateDirectoryA, 1p) -sem(CreateDirectoryW, 1p) -sem(CreateDirectoryExA, 1p, 2p) -sem(CreateDirectoryExW, 1p, 2p) -sem(CreateFileA, 1p) -sem(CreateFileW, 1p) -sem(DefineDosDeviceA, 2p, 3p) -sem(DefineDosDeviceW, 2p, 3p) -sem(DeleteFileA, 1p) -sem(DeleteFileW, 1p) -sem(FindClose, 1p) -sem(FindCloseChangeNotification, 1p) -sem(FindFirstChangeNotificationA, 1p) -sem(FindFirstChangeNotificationW, 1p) -sem(FindFirstFileA, 1p, 2p) -sem(FindFirstFileW, 1p, 2p) -sem(FindNextChangeNotification, 1p) -sem(FindNextFileA, 1p, 2p) -sem(FindNextFileW, 1p, 2p) -sem(FlushFileBuffers, 1p) -sem(GetBinaryTypeA, 1p, 2p) -sem(GetBinaryTypeW, 1p, 2p) -sem(GetCompressedFileSizeA, 1p) -sem(GetCompressedFileSizeW, 1p) -sem(GetCurrentDirectoryA, 2p, @n < 1p, 2n>0 && 1n>0) -sem(GetCurrentDirectoryW, 2p, @n < 1p, 2n>0 && 1n>0) -sem(GetDiskFreeSpaceA, 1p, 2p, 3p, 4p, 5p) -sem(GetDiskFreeSpaceW, 1p, 2p, 3p, 4p, 5p) -sem(GetDiskFreeSpaceExA, 1p, 2p, 3p) -sem(GetDiskFreeSpaceExW, 1p, 2p, 3p) -sem(GetFileAttributesA, 1p) -sem(GetFileAttributesW, 1p) -sem(GetFileAttributesExA, 1p, 3p) -sem(GetFileAttributesExW, 1p, 3p) -sem(GetFileInformationByHandle, 1p, 2p) -sem(GetFileSize, 1p) -sem(GetFileType, 1p) -sem(GetFullPathNameA, 1p, 3p, 4p, 3p==2n, @n < 2n) -sem(GetFullPathNameW, 1p, 3p, 4p, 3p==2n, @n < 2n) -sem(GetLogicalDriveStringsA, 2p, @n < 1n, 2p==1n) -function(gets, OpenFileA) -function(gets, OpenFileW) -sem(RemoveDirectoryA, 1p) -sem(RemoveDirectoryW, 1p) -sem(SetEndOfFile, 1p) -sem(SetCurrentDirectoryA, 1p) -sem(SetCurrentDirectoryW, 1p) -sem(SetFileAttributesA, 1p) -sem(SetFileAttributesW, 1p) -sem(SetFilePointer, 1p) -function(gets, SetHandleCount) // System Information Functions -sem(ExpandEnvironmentStringA, 1p && 2p && 3n == 2p) -sem(ExpandEnvironmentStringW, 1p && 2p && 3n == 2p) -sem(GetComputerNameA, 1p && 2p && 1p >= MAX_COMPUTERNAME_LENGTH && 2p==1) -sem(GetComputerNameW, 1p && 2p && 1p >= MAX_COMPUTERNAME_LENGTH && 2p==1) -sem(GetCurrentHwProfileA, 1p) -sem(GetCurrentHwProfileW, 1p) -sem(GetSystemDirectoryA, 1p && 1p == 2n) -sem(GetSystemDirectoryW, 1p && 1p == 2n) -sem(GetSystemInfo, 1p) -sem(GetUserNameA, 1p, 2p, 1p >= MAX_COMPUTERNAME_LENGTH && 2p==1) -sem(GetUserNameW, 1p, 2p, 1p >= MAX_COMPUTERNAME_LENGTH && 2p==1) -sem(GetWindowsDirectoryA, 1p, 1p == 2n) -sem(GetWindowsDirectoryW, 1p, 1p == 2n) -sem(SetComputerNameA, 1p) -sem(SetComputerNameA, 2p) -sem(SetSysColors, 2p, 3p, 1n==2p) // Processes & Threads -sem(AssignProcessToJobObject, 1p, 2p) // NT5.0 only! -sem(CommandLineToArgvW, 1p, 2p) -function(malloc, CommandLineToArgv) // returns ptr to allocated memory -sem(CreateFiber, 2p) -sem(CreateProcessW, 1p||2p, 9p, 10p) -sem(CreateProcessA, 1p||2p, 9p, 10p) -sem(SetHandleInformation, 1p) -sem(GetHandleInformation, 1p, 2p) -sem(CloseHandle, 1p)