]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/kernel32/kernel32.factor
Fix permission bits
[factor.git] / basis / windows / kernel32 / kernel32.factor
1 ! Copyright (C) 2005, 2006 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien alien.syntax kernel windows.types alias ;
4 IN: windows.kernel32
5
6 : MAX_PATH 260 ; inline
7
8 : GHND          HEX: 40 ; inline
9 : GMEM_FIXED          0 ; inline
10 : GMEM_MOVEABLE       2 ; inline
11 : GMEM_ZEROINIT HEX: 40 ; inline
12 : GPTR          HEX: 40 ; inline
13
14 : GENERIC_READ    HEX: 80000000 ; inline
15 : GENERIC_WRITE   HEX: 40000000 ; inline
16 : GENERIC_EXECUTE HEX: 20000000 ; inline
17 : GENERIC_ALL     HEX: 10000000 ; inline
18
19 : CREATE_NEW        1 ; inline
20 : CREATE_ALWAYS     2 ; inline
21 : OPEN_EXISTING     3 ; inline
22 : OPEN_ALWAYS       4 ; inline
23 : TRUNCATE_EXISTING 5 ; inline
24               
25 : FILE_LIST_DIRECTORY       HEX: 00000001 ; inline
26 : FILE_READ_DAT             HEX: 00000001 ; inline
27 : FILE_ADD_FILE             HEX: 00000002 ; inline
28 : FILE_WRITE_DATA           HEX: 00000002 ; inline
29 : FILE_ADD_SUBDIRECTORY     HEX: 00000004 ; inline
30 : FILE_APPEND_DATA          HEX: 00000004 ; inline
31 : FILE_CREATE_PIPE_INSTANCE HEX: 00000004 ; inline
32 : FILE_READ_EA              HEX: 00000008 ; inline
33 : FILE_READ_PROPERTIES      HEX: 00000008 ; inline
34 : FILE_WRITE_EA             HEX: 00000010 ; inline
35 : FILE_WRITE_PROPERTIES     HEX: 00000010 ; inline
36 : FILE_EXECUTE              HEX: 00000020 ; inline
37 : FILE_TRAVERSE             HEX: 00000020 ; inline
38 : FILE_DELETE_CHILD         HEX: 00000040 ; inline
39 : FILE_READ_ATTRIBUTES      HEX: 00000080 ; inline
40 : FILE_WRITE_ATTRIBUTES     HEX: 00000100 ; inline
41
42 : FILE_SHARE_READ        1 ; inline
43 : FILE_SHARE_WRITE       2 ; inline
44 : FILE_SHARE_DELETE      4 ; inline
45 : FILE_SHARE_VALID_FLAGS 7 ; inline
46
47 : FILE_FLAG_WRITE_THROUGH       HEX: 80000000 ; inline
48 : FILE_FLAG_OVERLAPPED          HEX: 40000000 ; inline
49 : FILE_FLAG_NO_BUFFERING        HEX: 20000000 ; inline
50 : FILE_FLAG_RANDOM_ACCESS       HEX: 10000000 ; inline
51 : FILE_FLAG_SEQUENTIAL_SCAN     HEX: 08000000 ; inline
52 : FILE_FLAG_DELETE_ON_CLOSE     HEX: 04000000 ; inline
53 : FILE_FLAG_BACKUP_SEMANTICS    HEX: 02000000 ; inline
54 : FILE_FLAG_POSIX_SEMANTICS     HEX: 01000000 ; inline
55 : FILE_FLAG_OPEN_REPARSE_POINT  HEX: 00200000 ; inline
56 : FILE_FLAG_OPEN_NO_RECALL      HEX: 00100000 ; inline
57 : FILE_FLAG_FIRST_PIPE_INSTANCE HEX: 00080000 ; inline
58
59 : FILE_ATTRIBUTE_READONLY            HEX: 00000001 ; inline
60 : FILE_ATTRIBUTE_HIDDEN              HEX: 00000002 ; inline
61 : FILE_ATTRIBUTE_SYSTEM              HEX: 00000004 ; inline
62 : FILE_ATTRIBUTE_DIRECTORY           HEX: 00000010 ; inline
63 : FILE_ATTRIBUTE_ARCHIVE             HEX: 00000020 ; inline
64 : FILE_ATTRIBUTE_DEVICE              HEX: 00000040 ; inline
65 : FILE_ATTRIBUTE_NORMAL              HEX: 00000080 ; inline
66 : FILE_ATTRIBUTE_TEMPORARY           HEX: 00000100 ; inline
67 : FILE_ATTRIBUTE_SPARSE_FILE         HEX: 00000200 ; inline
68 : FILE_ATTRIBUTE_REPARSE_POINT       HEX: 00000400 ; inline
69 : FILE_ATTRIBUTE_COMPRESSED          HEX: 00000800 ; inline
70 : FILE_ATTRIBUTE_OFFLINE             HEX: 00001000 ; inline
71 : FILE_ATTRIBUTE_NOT_CONTENT_INDEXED HEX: 00002000 ; inline
72 : FILE_ATTRIBUTE_ENCRYPTED           HEX: 00004000 ; inline
73
74 : FILE_NOTIFY_CHANGE_FILE        HEX: 001 ; inline
75 : FILE_NOTIFY_CHANGE_DIR_NAME    HEX: 002 ; inline
76 : FILE_NOTIFY_CHANGE_ATTRIBUTES  HEX: 004 ; inline
77 : FILE_NOTIFY_CHANGE_SIZE        HEX: 008 ; inline
78 : FILE_NOTIFY_CHANGE_LAST_WRITE  HEX: 010 ; inline
79 : FILE_NOTIFY_CHANGE_LAST_ACCESS HEX: 020 ; inline
80 : FILE_NOTIFY_CHANGE_CREATION    HEX: 040 ; inline
81 : FILE_NOTIFY_CHANGE_EA          HEX: 080 ; inline
82 : FILE_NOTIFY_CHANGE_SECURITY    HEX: 100 ; inline
83 : FILE_NOTIFY_CHANGE_FILE_NAME   HEX: 200 ; inline
84 : FILE_NOTIFY_CHANGE_ALL         HEX: 3ff ; inline
85
86 : FILE_ACTION_ADDED 1 ; inline
87 : FILE_ACTION_REMOVED 2 ; inline
88 : FILE_ACTION_MODIFIED 3 ; inline
89 : FILE_ACTION_RENAMED_OLD_NAME 4 ; inline
90 : FILE_ACTION_RENAMED_NEW_NAME 5 ; inline
91
92 C-STRUCT: FILE_NOTIFY_INFORMATION
93     { "DWORD" "NextEntryOffset" }
94     { "DWORD" "Action" }
95     { "DWORD" "FileNameLength" }
96     { "WCHAR[1]" "FileName" } ;
97 TYPEDEF: FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION
98
99 : STD_INPUT_HANDLE  -10 ; inline
100 : STD_OUTPUT_HANDLE -11 ; inline
101 : STD_ERROR_HANDLE  -12 ; inline
102
103 : INVALID_HANDLE_VALUE -1 <alien> ; inline
104 : INVALID_FILE_SIZE HEX: FFFFFFFF ; inline
105 : INVALID_SET_FILE_POINTER HEX: ffffffff ; inline
106
107 : FILE_BEGIN 0 ; inline
108 : FILE_CURRENT 1 ; inline
109 : FILE_END 2 ; inline
110
111 : OF_READ 0 ;
112 : OF_READWRITE    2 ;
113 : OF_WRITE    1 ;
114 : OF_SHARE_COMPAT    0 ;
115 : OF_SHARE_DENY_NONE    64 ;
116 : OF_SHARE_DENY_READ    48 ;
117 : OF_SHARE_DENY_WRITE    32 ;
118 : OF_SHARE_EXCLUSIVE    16 ;
119 : OF_CANCEL    2048 ;
120 : OF_CREATE    4096 ;
121 : OF_DELETE    512 ;
122 : OF_EXIST    16384 ;
123 : OF_PARSE    256 ;
124 : OF_PROMPT    8192 ;
125 : OF_REOPEN    32768 ;
126 : OF_VERIFY    1024 ;
127
128 : INFINITE HEX: FFFFFFFF ; inline
129
130 ! From C:\cygwin\usr\include\w32api\winbase.h
131 : FILE_TYPE_UNKNOWN 0 ;
132 : FILE_TYPE_DISK 1 ;
133 : FILE_TYPE_CHAR 2 ;
134 : FILE_TYPE_PIPE 3 ;
135 : FILE_TYPE_REMOTE HEX: 8000 ;
136
137 : TIME_ZONE_ID_UNKNOWN 0 ; inline
138 : TIME_ZONE_ID_STANDARD 1 ; inline
139 : TIME_ZONE_ID_DAYLIGHT 2 ; inline
140 : TIME_ZONE_ID_INVALID HEX: FFFFFFFF ; inline
141
142
143 : PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 ; inline
144 : PF_SSE3_INSTRUCTIONS_AVAILABLE 13 ; inline
145
146 : MAX_COMPUTERNAME_LENGTH 15 ; inline
147 : UNLEN 256 ; inline
148
149 : PROCESS_TERMINATE ( -- n ) HEX: 1 ; inline
150 : PROCESS_CREATE_THREAD ( -- n ) HEX: 2 ; inline
151 : PROCESS_VM_OPERATION ( -- n ) HEX: 8 ; inline
152 : PROCESS_VM_READ ( -- n ) HEX: 10 ; inline
153 : PROCESS_VM_WRITE ( -- n ) HEX: 20 ; inline
154 : PROCESS_DUP_HANDLE ( -- n ) HEX: 40 ; inline
155 : PROCESS_CREATE_PROCESS ( -- n ) HEX: 80 ; inline
156 : PROCESS_SET_QUOTA ( -- n ) HEX: 100 ; inline
157 : PROCESS_SET_INFORMATION ( -- n ) HEX: 200 ; inline
158 : PROCESS_QUERY_INFORMATION ( -- n ) HEX: 400 ; inline
159
160 : MEM_COMMIT ( -- n ) HEX: 1000 ; inline
161 : MEM_RELEASE ( -- n ) HEX: 8000 ; inline
162
163 : PAGE_NOACCESS    1 ; inline
164 : PAGE_READONLY    2 ; inline
165 : PAGE_READWRITE 4 ; inline
166 : PAGE_WRITECOPY 8 ; inline
167 : PAGE_EXECUTE HEX: 10 ; inline
168 : PAGE_EXECUTE_READ HEX: 20 ; inline
169 : PAGE_EXECUTE_READWRITE HEX: 40 ; inline
170 : PAGE_EXECUTE_WRITECOPY HEX: 80 ; inline
171 : PAGE_GUARD HEX: 100 ; inline
172 : PAGE_NOCACHE HEX: 200 ; inline
173
174 : SEC_BASED HEX: 00200000 ; inline
175 : SEC_NO_CHANGE HEX: 00400000 ; inline
176 : SEC_FILE HEX: 00800000 ; inline
177 : SEC_IMAGE HEX: 01000000 ; inline
178 : SEC_VLM HEX: 02000000 ; inline
179 : SEC_RESERVE HEX: 04000000 ; inline
180 : SEC_COMMIT HEX: 08000000 ; inline
181 : SEC_NOCACHE HEX: 10000000 ; inline
182 : MEM_IMAGE SEC_IMAGE ; inline
183
184 : ERROR_ALREADY_EXISTS 183 ; inline
185
186 : FILE_MAP_ALL_ACCESS HEX: f001f ;
187 : FILE_MAP_READ   4 ;
188 : FILE_MAP_WRITE  2 ;
189 : FILE_MAP_COPY   1 ;
190
191 : THREAD_MODE_BACKGROUND_BEGIN HEX: 10000 ; inline
192 : THREAD_MODE_BACKGROUND_END   HEX: 20000 ; inline
193 : THREAD_PRIORITY_ABOVE_NORMAL 1 ; inline
194 : THREAD_PRIORITY_BELOW_NORMAL -1 ; inline
195 : THREAD_PRIORITY_HIGHEST 2 ; inline
196 : THREAD_PRIORITY_IDLE -15 ; inline
197 : THREAD_PRIORITY_LOWEST -2 ; inline
198 : THREAD_PRIORITY_NORMAL 0 ; inline
199 : THREAD_PRIORITY_TIME_CRITICAL 15 ; inline
200
201 C-STRUCT: OVERLAPPED
202     { "int" "internal" }
203     { "int" "internal-high" }
204     { "int" "offset" }
205     { "int" "offset-high" }
206     { "void*" "event" } ;
207
208 C-STRUCT: SYSTEMTIME
209     { "WORD" "wYear" }
210     { "WORD" "wMonth" }
211     { "WORD" "wDayOfWeek" }
212     { "WORD" "wDay" }
213     { "WORD" "wHour" }
214     { "WORD" "wMinute" }
215     { "WORD" "wSecond" }
216     { "WORD" "wMilliseconds" } ;
217
218 C-STRUCT: TIME_ZONE_INFORMATION
219     { "LONG" "Bias" }
220     { { "WCHAR" 32 } "StandardName" }
221     { "SYSTEMTIME" "StandardDate" }
222     { "LONG" "StandardBias" }
223     { { "WCHAR" 32 } "DaylightName" }
224     { "SYSTEMTIME" "DaylightDate" }
225     { "LONG" "DaylightBias" } ;
226
227 C-STRUCT: FILETIME
228     { "DWORD" "dwLowDateTime" }
229     { "DWORD" "dwHighDateTime" } ;
230
231 C-STRUCT: STARTUPINFO
232     { "DWORD" "cb" }
233     { "LPTSTR" "lpReserved" }
234     { "LPTSTR" "lpDesktop" }
235     { "LPTSTR" "lpTitle" }
236     { "DWORD" "dwX" }
237     { "DWORD" "dwY" }
238     { "DWORD" "dwXSize" }
239     { "DWORD" "dwYSize" }
240     { "DWORD" "dwXCountChars" }
241     { "DWORD" "dwYCountChars" }
242     { "DWORD" "dwFillAttribute" }
243     { "DWORD" "dwFlags" }
244     { "WORD" "wShowWindow" }
245     { "WORD" "cbReserved2" }
246     { "LPBYTE" "lpReserved2" }
247     { "HANDLE" "hStdInput" }
248     { "HANDLE" "hStdOutput" }
249     { "HANDLE" "hStdError" } ;
250
251 TYPEDEF: void* LPSTARTUPINFO
252
253 C-STRUCT: PROCESS_INFORMATION
254     { "HANDLE" "hProcess" }
255     { "HANDLE" "hThread" }
256     { "DWORD" "dwProcessId" }
257     { "DWORD" "dwThreadId" } ;
258
259 C-STRUCT: SYSTEM_INFO
260     { "DWORD" "dwOemId" }
261     { "DWORD" "dwPageSize" }
262     { "LPVOID" "lpMinimumApplicationAddress" }
263     { "LPVOID" "lpMaximumApplicationAddress" }
264     { "DWORD_PTR" "dwActiveProcessorMask" }
265     { "DWORD" "dwNumberOfProcessors" }
266     { "DWORD" "dwProcessorType" }
267     { "DWORD" "dwAllocationGranularity" }
268     { "WORD" "wProcessorLevel" }
269     { "WORD" "wProcessorRevision" } ;
270
271 TYPEDEF: void* LPSYSTEM_INFO
272
273 C-STRUCT: MEMORYSTATUS
274     { "DWORD" "dwLength" }
275     { "DWORD" "dwMemoryLoad" }
276     { "SIZE_T" "dwTotalPhys" }
277     { "SIZE_T" "dwAvailPhys" }
278     { "SIZE_T" "dwTotalPageFile" }
279     { "SIZE_T" "dwAvailPageFile" }
280     { "SIZE_T" "dwTotalVirtual" }
281     { "SIZE_T" "dwAvailVirtual" } ;
282
283 TYPEDEF: void* LPMEMORYSTATUS
284
285 C-STRUCT: MEMORYSTATUSEX
286     { "DWORD" "dwLength" }
287     { "DWORD" "dwMemoryLoad" }
288     { "DWORDLONG" "ullTotalPhys" }
289     { "DWORDLONG" "ullAvailPhys" }
290     { "DWORDLONG" "ullTotalPageFile" }
291     { "DWORDLONG" "ullAvailPageFile" }
292     { "DWORDLONG" "ullTotalVirtual" }
293     { "DWORDLONG" "ullAvailVirtual" }
294     { "DWORDLONG" "ullAvailExtendedVirtual" } ;
295
296 TYPEDEF: void* LPMEMORYSTATUSEX
297
298 C-STRUCT: OSVERSIONINFO
299     { "DWORD" "dwOSVersionInfoSize" }
300     { "DWORD" "dwMajorVersion" }
301     { "DWORD" "dwMinorVersion" }
302     { "DWORD" "dwBuildNumber" }
303     { "DWORD" "dwPlatformId" }
304     { { "WCHAR" 128 } "szCSDVersion" } ;
305
306 TYPEDEF: void* LPOSVERSIONINFO
307
308 C-STRUCT: MEMORY_BASIC_INFORMATION
309   { "void*" "BaseAddress" }
310   { "void*" "AllocationBase" }
311   { "DWORD" "AllocationProtect" }
312   { "SIZE_T" "RegionSize" }
313   { "DWORD" "state" }
314   { "DWORD" "protect" }
315   { "DWORD" "type" } ;
316
317 C-STRUCT: GUID
318     { "ulong" "Data1" }
319     { "ushort" "Data2" }
320     { "ushort" "Data3" }
321     { { "uchar" 8 } "Data4" } ;
322
323
324 : SE_CREATE_TOKEN_NAME "SeCreateTokenPrivilege" ;
325 : SE_ASSIGNPRIMARYTOKEN_NAME "SeAssignPrimaryTokenPrivilege" ;
326 : SE_LOCK_MEMORY_NAME "SeLockMemoryPrivilege" ;
327 : SE_INCREASE_QUOTA_NAME "SeIncreaseQuotaPrivilege" ;
328 : SE_UNSOLICITED_INPUT_NAME "SeUnsolicitedInputPrivilege" ;
329 : SE_MACHINE_ACCOUNT_NAME "SeMachineAccountPrivilege" ;
330 : SE_TCB_NAME "SeTcbPrivilege" ;
331 : SE_SECURITY_NAME "SeSecurityPrivilege" ;
332 : SE_TAKE_OWNERSHIP_NAME "SeTakeOwnershipPrivilege" ;
333 : SE_LOAD_DRIVER_NAME "SeLoadDriverPrivilege" ;
334 : SE_SYSTEM_PROFILE_NAME "SeSystemProfilePrivilege" ;
335 : SE_SYSTEMTIME_NAME "SeSystemtimePrivilege" ;
336 : SE_PROF_SINGLE_PROCESS_NAME "SeProfileSingleProcessPrivilege" ;
337 : SE_INC_BASE_PRIORITY_NAME "SeIncreaseBasePriorityPrivilege" ;
338 : SE_CREATE_PAGEFILE_NAME "SeCreatePagefilePrivilege" ;
339 : SE_CREATE_PERMANENT_NAME "SeCreatePermanentPrivilege" ;
340 : SE_BACKUP_NAME "SeBackupPrivilege" ;
341 : SE_RESTORE_NAME "SeRestorePrivilege" ;
342 : SE_SHUTDOWN_NAME "SeShutdownPrivilege" ;
343 : SE_DEBUG_NAME "SeDebugPrivilege" ;
344 : SE_AUDIT_NAME "SeAuditPrivilege" ;
345 : SE_SYSTEM_ENVIRONMENT_NAME "SeSystemEnvironmentPrivilege" ;
346 : SE_CHANGE_NOTIFY_NAME "SeChangeNotifyPrivilege" ;
347 : SE_REMOTE_SHUTDOWN_NAME "SeRemoteShutdownPrivilege" ;
348 : SE_UNDOCK_NAME "SeUndockPrivilege" ;
349 : SE_ENABLE_DELEGATION_NAME "SeEnableDelegationPrivilege" ;
350 : SE_MANAGE_VOLUME_NAME "SeManageVolumePrivilege" ;
351 : SE_IMPERSONATE_NAME "SeImpersonatePrivilege" ;
352 : SE_CREATE_GLOBAL_NAME "SeCreateGlobalPrivilege" ;
353
354 : SE_GROUP_MANDATORY HEX: 00000001 ;
355 : SE_GROUP_ENABLED_BY_DEFAULT HEX: 00000002 ;
356 : SE_GROUP_ENABLED HEX: 00000004 ;
357 : SE_GROUP_OWNER HEX: 00000008 ;
358 : SE_GROUP_USE_FOR_DENY_ONLY HEX: 00000010 ;
359 : SE_GROUP_LOGON_ID HEX: C0000000 ;
360 : SE_GROUP_RESOURCE HEX: 20000000 ;
361
362 : SE_PRIVILEGE_ENABLED_BY_DEFAULT HEX: 00000001 ;
363 : SE_PRIVILEGE_ENABLED HEX: 00000002 ;
364 : SE_PRIVILEGE_REMOVE HEX: 00000004 ;
365 : SE_PRIVILEGE_USED_FOR_ACCESS HEX: 80000000 ;
366
367 : PRIVILEGE_SET_ALL_NECESSARY 1 ;
368
369 : SE_OWNER_DEFAULTED HEX: 00000001 ;
370 : SE_GROUP_DEFAULTED HEX: 00000002 ;
371 : SE_DACL_PRESENT HEX: 00000004 ;
372 : SE_DACL_DEFAULTED HEX: 00000008 ;
373 : SE_SACL_PRESENT HEX: 00000010 ;
374 : SE_SACL_DEFAULTED HEX: 00000020 ;
375 : SE_DACL_AUTO_INHERIT_REQ HEX: 00000100 ;
376 : SE_SACL_AUTO_INHERIT_REQ HEX: 00000200 ;
377 : SE_DACL_AUTO_INHERITED HEX: 00000400 ;
378 : SE_SACL_AUTO_INHERITED HEX: 00000800 ;
379 : SE_DACL_PROTECTED  HEX: 00001000 ;
380 : SE_SACL_PROTECTED  HEX: 00002000 ;
381 : SE_SELF_RELATIVE HEX: 00008000 ;
382
383 : ANYSIZE_ARRAY 1 ; inline
384
385 : MAXIMUM_WAIT_OBJECTS 64 ; inline
386 : MAXIMUM_SUSPEND_COUNT HEX: 7f ; inline
387 : WAIT_OBJECT_0 0 ; inline
388 : WAIT_ABANDONED_0 128 ; inline
389 : WAIT_TIMEOUT 258 ; inline
390 : WAIT_IO_COMPLETION HEX: c0 ; inline
391 : WAIT_FAILED HEX: ffffffff ; inline
392
393 C-STRUCT: LUID
394     { "DWORD" "LowPart" }
395     { "LONG" "HighPart" } ;
396 TYPEDEF: LUID* PLUID
397
398 C-STRUCT: LUID_AND_ATTRIBUTES
399     { "LUID" "Luid" }
400     { "DWORD" "Attributes" } ;
401 TYPEDEF: LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES
402
403 C-STRUCT: TOKEN_PRIVILEGES
404     { "DWORD" "PrivilegeCount" }
405     { "LUID_AND_ATTRIBUTES*" "Privileges" } ;
406 TYPEDEF: TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES
407
408 C-STRUCT: WIN32_FILE_ATTRIBUTE_DATA
409     { "DWORD" "dwFileAttributes" }
410     { "FILETIME" "ftCreationTime" }
411     { "FILETIME" "ftLastAccessTime" }
412     { "FILETIME" "ftLastWriteTime" }
413     { "DWORD" "nFileSizeHigh" }
414     { "DWORD" "nFileSizeLow" } ;
415 TYPEDEF: WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA
416
417 C-STRUCT: BY_HANDLE_FILE_INFORMATION
418   { "DWORD" "dwFileAttributes" }
419   { "FILETIME" "ftCreationTime" }
420   { "FILETIME" "ftLastAccessTime" }
421   { "FILETIME" "ftLastWriteTime" }
422   { "DWORD" "dwVolumeSerialNumber" }
423   { "DWORD" "nFileSizeHigh" }
424   { "DWORD" "nFileSizeLow" }
425   { "DWORD" "nNumberOfLinks" }
426   { "DWORD" "nFileIndexHigh" }
427   { "DWORD" "nFileIndexLow" } ;
428 TYPEDEF: BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION
429
430 : OFS_MAXPATHNAME 128 ;
431
432 C-STRUCT: OFSTRUCT
433     { "BYTE" "cBytes" }
434     { "BYTE" "fFixedDisk" }
435     { "WORD" "nErrCode" }
436     { "WORD" "Reserved1" }
437     { "WORD" "Reserved2" }
438     ! { { "CHAR" OFS_MAXPATHNAME } "szPathName" } ;
439     { { "CHAR" 128 } "szPathName" } ;
440
441 TYPEDEF: OFSTRUCT* LPOFSTRUCT
442
443 ! MAX_PATH = 260
444 C-STRUCT: WIN32_FIND_DATA
445     { "DWORD" "dwFileAttributes" }
446     { "FILETIME" "ftCreationTime" }
447     { "FILETIME" "ftLastAccessTime" }
448     { "FILETIME" "ftLastWriteTime" }
449     { "DWORD" "nFileSizeHigh" }
450     { "DWORD" "nFileSizeLow" }
451     { "DWORD" "dwReserved0" }
452     { "DWORD" "dwReserved1" }
453     ! { { "TCHAR" MAX_PATH } "cFileName" }
454     { { "TCHAR" 260 } "cFileName" }
455     { { "TCHAR" 14 } "cAlternateFileName" } ;
456
457 C-STRUCT: BY_HANDLE_FILE_INFORMATION
458     { "DWORD" "dwFileAttributes" }
459     { "FILETIME" "ftCreationTime" }
460     { "FILETIME" "ftLastAccessTime" }
461     { "FILETIME" "ftLastWriteTime" }
462     { "DWORD" "dwVolumeSerialNumber" }
463     { "DWORD" "nFileSizeHigh" }
464     { "DWORD" "nFileSizeLow" }
465     { "DWORD" "nNumberOfLinks" }
466     { "DWORD" "nFileIndexHigh" }
467     { "DWORD" "nFileIndexLow" } ;
468
469 TYPEDEF: WIN32_FIND_DATA* PWIN32_FIND_DATA
470 TYPEDEF: WIN32_FIND_DATA* LPWIN32_FIND_DATA
471 TYPEDEF: void* POVERLAPPED
472 TYPEDEF: void* LPOVERLAPPED
473 TYPEDEF: void* LPSECURITY_ATTRIBUTES
474 TYPEDEF: void* LPPROCESS_INFORMATION
475
476 TYPEDEF: SYSTEMTIME* PSYSTEMTIME
477 TYPEDEF: PSYSTEMTIME LPSYSTEMTIME
478
479 TYPEDEF: TIME_ZONE_INFORMATION* PTIME_ZONE_INFORMATION
480 TYPEDEF: PTIME_ZONE_INFORMATION LPTIME_ZONE_INFORMATION
481
482 TYPEDEF: FILETIME* PFILETIME
483 TYPEDEF: PFILETIME LPFILETIME
484
485 TYPEDEF: int GET_FILEEX_INFO_LEVELS
486
487 C-STRUCT: SECURITY_ATTRIBUTES
488     { "DWORD" "nLength" }
489     { "LPVOID" "lpSecurityDescriptor" }
490     { "BOOL" "bInheritHandle" } ;
491
492 : HANDLE_FLAG_INHERIT 1 ; inline
493 : HANDLE_FLAG_PROTECT_FROM_CLOSE 2 ; inline
494
495 : STARTF_USESHOWWINDOW    HEX: 00000001 ; inline
496 : STARTF_USESIZE          HEX: 00000002 ; inline
497 : STARTF_USEPOSITION      HEX: 00000004 ; inline
498 : STARTF_USECOUNTCHARS    HEX: 00000008 ; inline
499 : STARTF_USEFILLATTRIBUTE HEX: 00000010 ; inline
500 : STARTF_RUNFULLSCREEN    HEX: 00000020 ; inline
501 : STARTF_FORCEONFEEDBACK  HEX: 00000040 ; inline
502 : STARTF_FORCEOFFFEEDBACK HEX: 00000080 ; inline
503 : STARTF_USESTDHANDLES    HEX: 00000100 ; inline
504 : STARTF_USEHOTKEY        HEX: 00000200 ; inline
505
506 : PIPE_ACCESS_INBOUND  1 ; inline
507 : PIPE_ACCESS_OUTBOUND 2 ; inline
508 : PIPE_ACCESS_DUPLEX   3 ; inline
509
510 : PIPE_TYPE_BYTE    0 ; inline
511 : PIPE_TYPE_MESSAGE 4 ; inline
512
513 : PIPE_READMODE_BYTE    0 ; inline
514 : PIPE_READMODE_MESSAGE 2 ; inline
515
516 : PIPE_WAIT   0 ; inline
517 : PIPE_NOWAIT 1 ; inline
518
519 : PIPE_UNLIMITED_INSTANCES 255 ; inline
520
521 LIBRARY: kernel32
522 ! FUNCTION: _hread
523 ! FUNCTION: _hwrite
524 ! FUNCTION: _lclose
525 ! FUNCTION: _lcreat
526 ! FUNCTION: _llseek
527 ! FUNCTION: _lopen
528 ! FUNCTION: _lread
529 ! FUNCTION: _lwrite
530 ! FUNCTION: ActivateActCtx
531 ! FUNCTION: AddAtomA
532 ! FUNCTION: AddAtomW
533 ! FUNCTION: AddConsoleAliasA
534 ! FUNCTION: AddConsoleAliasW
535 ! FUNCTION: AddLocalAlternateComputerNameA
536 ! FUNCTION: AddLocalAlternateComputerNameW
537 ! FUNCTION: AddRefActCtx
538 ! FUNCTION: AddVectoredExceptionHandler
539 ! FUNCTION: AllocateUserPhysicalPages
540 ! FUNCTION: AllocConsole
541 ! FUNCTION: AreFileApisANSI
542 ! FUNCTION: AssignProcessToJobObject
543 ! FUNCTION: AttachConsole
544 ! FUNCTION: BackupRead
545 ! FUNCTION: BackupSeek
546 ! FUNCTION: BackupWrite
547 ! FUNCTION: BaseCheckAppcompatCache
548 ! FUNCTION: BaseCleanupAppcompatCache
549 ! FUNCTION: BaseCleanupAppcompatCacheSupport
550 ! FUNCTION: BaseDumpAppcompatCache
551 ! FUNCTION: BaseFlushAppcompatCache
552 ! FUNCTION: BaseInitAppcompatCache
553 ! FUNCTION: BaseInitAppcompatCacheSupport
554 ! FUNCTION: BasepCheckWinSaferRestrictions
555 ! FUNCTION: BaseProcessInitPostImport
556 ! FUNCTION: BaseQueryModuleData
557 ! FUNCTION: BaseUpdateAppcompatCache
558 ! FUNCTION: Beep
559 ! FUNCTION: BeginUpdateResourceA
560 ! FUNCTION: BeginUpdateResourceW
561 ! FUNCTION: BindIoCompletionCallback
562 ! FUNCTION: BuildCommDCBA
563 ! FUNCTION: BuildCommDCBAndTimeoutsA
564 ! FUNCTION: BuildCommDCBAndTimeoutsW
565 ! FUNCTION: BuildCommDCBW
566 ! FUNCTION: CallNamedPipeA
567 ! FUNCTION: CallNamedPipeW
568 ! FUNCTION: CancelDeviceWakeupRequest
569 FUNCTION: BOOL CancelIo ( HANDLE h ) ;
570 ! FUNCTION: CancelTimerQueueTimer
571 ! FUNCTION: CancelWaitableTimer
572 ! FUNCTION: ChangeTimerQueueTimer
573 ! FUNCTION: CheckNameLegalDOS8Dot3A
574 ! FUNCTION: CheckNameLegalDOS8Dot3W
575 ! FUNCTION: CheckRemoteDebuggerPresent
576 ! FUNCTION: ClearCommBreak
577 ! FUNCTION: ClearCommError
578 ! FUNCTION: CloseConsoleHandle
579 FUNCTION: BOOL CloseHandle ( HANDLE h ) ;
580 ! FUNCTION: CloseProfileUserMapping
581 ! FUNCTION: CmdBatNotification
582 ! FUNCTION: CommConfigDialogA
583 ! FUNCTION: CommConfigDialogW
584 ! FUNCTION: CompareFileTime
585 ! FUNCTION: CompareStringA
586 ! FUNCTION: CompareStringW
587 FUNCTION: BOOL ConnectNamedPipe ( HANDLE hNamedPipe, LPOVERLAPPED lpOverlapped ) ;
588 ! FUNCTION: ConsoleMenuControl
589 ! FUNCTION: ContinueDebugEvent
590 ! FUNCTION: ConvertDefaultLocale
591 ! FUNCTION: ConvertFiberToThread
592 ! FUNCTION: ConvertThreadToFiber
593 ! FUNCTION: CopyFileA
594 ! FUNCTION: CopyFileExA
595 ! FUNCTION: CopyFileExW
596 FUNCTION: BOOL CopyFileW ( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists ) ;
597 ALIAS: CopyFile CopyFileW
598 ! FUNCTION: CopyLZFile
599 ! FUNCTION: CreateActCtxA
600 ! FUNCTION: CreateActCtxW
601 ! FUNCTION: CreateConsoleScreenBuffer
602 ! FUNCTION: CreateDirectoryA
603 ! FUNCTION: CreateDirectoryExA
604 ! FUNCTION: CreateDirectoryExW
605 FUNCTION: BOOL CreateDirectoryW ( LPCTSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttribytes ) ;
606 ALIAS: CreateDirectory CreateDirectoryW
607
608 ! FUNCTION: CreateEventA
609 ! FUNCTION: CreateEventW
610 ! FUNCTION: CreateFiber
611 ! FUNCTION: CreateFiberEx
612
613
614 FUNCTION: HANDLE CreateFileW ( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttribures, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ) ;
615 ALIAS: CreateFile CreateFileW
616
617 FUNCTION: HANDLE  CreateFileMappingW ( HANDLE hFile,
618                                        LPSECURITY_ATTRIBUTES lpAttributes,
619                                        DWORD flProtect,
620                                        DWORD dwMaximumSizeHigh,
621                                        DWORD dwMaximumSizeLow,
622                                        LPCTSTR lpName ) ;
623 ALIAS: CreateFileMapping CreateFileMappingW
624
625 ! FUNCTION: CreateHardLinkA
626 ! FUNCTION: CreateHardLinkW
627 ! FUNCTION: HANDLE CreateIoCompletionPort ( HANDLE hFileHandle, HANDLE hExistingCompletionPort, ULONG_PTR uCompletionKey, DWORD dwNumberofConcurrentThreads ) ;
628 FUNCTION: HANDLE CreateIoCompletionPort ( HANDLE hFileHandle, HANDLE hExistingCompletionPort, void* uCompletionKey, DWORD dwNumberofConcurrentThreads ) ;
629 ! FUNCTION: CreateJobObjectA
630 ! FUNCTION: CreateJobObjectW
631 ! FUNCTION: CreateJobSet
632 ! FUNCTION: CreateMailslotA
633 ! FUNCTION: CreateMailslotW
634 ! FUNCTION: CreateMemoryResourceNotification
635 ! FUNCTION: CreateMutexA
636 ! FUNCTION: CreateMutexW
637 ! FUNCTION: CreateNamedPipeA
638 FUNCTION: HANDLE CreateNamedPipeW ( LPCTSTR lpName, DWORD dwOpenMode, DWORD dwPipeMode, DWORD nMaxInstances, DWORD nOutBufferSize, DWORD nInBufferSize, DWORD nDefaultTimeOut, LPSECURITY_ATTRIBUTES lpSecurityAttributes ) ;
639 ALIAS: CreateNamedPipe CreateNamedPipeW
640
641 ! FUNCTION: CreateNlsSecurityDescriptor
642 FUNCTION: BOOL CreatePipe ( PHANDLE hReadPipe, PHANDLE hWritePipe, LPSECURITY_ATTRIBUTES lpPipeAttributes, DWORD nSize ) ;
643
644 : DEBUG_PROCESS                   HEX: 00000001 ;
645 : DEBUG_ONLY_THIS_PROCESS         HEX: 00000002 ;
646 : CREATE_SUSPENDED                HEX: 00000004 ;
647 : DETACHED_PROCESS                HEX: 00000008 ;
648 : CREATE_NEW_CONSOLE              HEX: 00000010 ;
649 : NORMAL_PRIORITY_CLASS           HEX: 00000020 ;
650 : IDLE_PRIORITY_CLASS             HEX: 00000040 ;
651 : HIGH_PRIORITY_CLASS             HEX: 00000080 ;
652 : REALTIME_PRIORITY_CLASS         HEX: 00000100 ;
653 : CREATE_NEW_PROCESS_GROUP        HEX: 00000200 ;
654 : CREATE_UNICODE_ENVIRONMENT      HEX: 00000400 ;
655 : CREATE_SEPARATE_WOW_VDM         HEX: 00000800 ;
656 : CREATE_SHARED_WOW_VDM           HEX: 00001000 ;
657 : CREATE_FORCEDOS                 HEX: 00002000 ;
658 : BELOW_NORMAL_PRIORITY_CLASS     HEX: 00004000 ;
659 : ABOVE_NORMAL_PRIORITY_CLASS     HEX: 00008000 ;
660 : CREATE_BREAKAWAY_FROM_JOB       HEX: 01000000 ;
661 : CREATE_WITH_USERPROFILE         HEX: 02000000 ;
662 : CREATE_DEFAULT_ERROR_MODE       HEX: 04000000 ;
663 : CREATE_NO_WINDOW                HEX: 08000000 ;
664 : PROFILE_USER                    HEX: 10000000 ;
665 : PROFILE_KERNEL                  HEX: 20000000 ;
666 : PROFILE_SERVER                  HEX: 40000000 ;
667
668 FUNCTION: BOOL CreateProcessW ( LPCTSTR lpApplicationname,
669                                 LPTSTR lpCommandLine,
670                                 LPSECURITY_ATTRIBUTES lpProcessAttributes,
671                                 LPSECURITY_ATTRIBUTES lpThreadAttributes,
672                                 BOOL bInheritHandles,
673                                 DWORD dwCreationFlags,
674                                 LPVOID lpEnvironment,
675                                 LPCTSTR lpCurrentDirectory,
676                                 LPSTARTUPINFO lpStartupInfo,
677                                 LPPROCESS_INFORMATION lpProcessInformation ) ;
678 ALIAS: CreateProcess CreateProcessW
679 ! FUNCTION: CreateProcessInternalA
680 ! FUNCTION: CreateProcessInternalW
681 ! FUNCTION: CreateProcessInternalWSecure
682 FUNCTION: HANDLE CreateRemoteThread ( HANDLE hProcess,
683                                       LPSECURITY_ATTRIBUTES lpThreadAttributes,
684                                       SIZE_T dwStackSize,
685                                       LPVOID lpStartAddress,
686                                       LPVOID lpParameter,
687                                       DWORD dwCreationFlags,
688                                       LPDWORD lpThreadId ) ; 
689 ! FUNCTION: CreateSemaphoreA
690 ! FUNCTION: CreateSemaphoreW
691 ! FUNCTION: CreateSocketHandle
692 ! FUNCTION: CreateTapePartition
693 ! FUNCTION: CreateThread
694 ! FUNCTION: CreateTimerQueue
695 ! FUNCTION: CreateTimerQueueTimer
696 ! FUNCTION: CreateToolhelp32Snapshot
697 ! FUNCTION: CreateVirtualBuffer
698 ! FUNCTION: CreateWaitableTimerA
699 ! FUNCTION: CreateWaitableTimerW
700 ! FUNCTION: DeactivateActCtx
701 ! FUNCTION: DebugActiveProcess
702 ! FUNCTION: DebugActiveProcessStop
703 ! FUNCTION: DebugBreak
704 ! FUNCTION: DebugBreakProcess
705 ! FUNCTION: DebugSetProcessKillOnExit
706 ! FUNCTION: DecodePointer
707 ! FUNCTION: DecodeSystemPointer
708 ! FUNCTION: DefineDosDeviceA
709 ! FUNCTION: DefineDosDeviceW
710 ! FUNCTION: DelayLoadFailureHook
711 ! FUNCTION: DeleteAtom
712 ! FUNCTION: DeleteCriticalSection
713 ! FUNCTION: DeleteFiber
714 ! FUNCTION: DeleteFileA
715 FUNCTION: BOOL DeleteFileW ( LPCTSTR lpFileName ) ;
716 ALIAS: DeleteFile DeleteFileW
717 ! FUNCTION: DeleteTimerQueue
718 ! FUNCTION: DeleteTimerQueueEx
719 ! FUNCTION: DeleteTimerQueueTimer
720 ! FUNCTION: DeleteVolumeMountPointA
721 ! FUNCTION: DeleteVolumeMountPointW
722 ! FUNCTION: DeviceIoControl
723 ! FUNCTION: DisableThreadLibraryCalls
724 ! FUNCTION: DisconnectNamedPipe
725 ! FUNCTION: DnsHostnameToComputerNameA
726 ! FUNCTION: DnsHostnameToComputerNameW
727 ! FUNCTION: DosDateTimeToFileTime
728 ! FUNCTION: DosPathToSessionPathA
729 ! FUNCTION: DosPathToSessionPathW
730 ! FUNCTION: DuplicateConsoleHandle
731
732 FUNCTION: BOOL DuplicateHandle (
733     HANDLE hSourceProcessHandle,
734     HANDLE hSourceHandle,
735     HANDLE hTargetProcessHandle,
736     LPHANDLE lpTargetHandle,
737     DWORD dwDesiredAccess,
738     BOOL bInheritHandle,
739     DWORD dwOptions ) ;
740
741 : DUPLICATE_CLOSE_SOURCE 1 ;
742 : DUPLICATE_SAME_ACCESS 2 ;
743
744 ! FUNCTION: EncodePointer
745 ! FUNCTION: EncodeSystemPointer
746 ! FUNCTION: EndUpdateResourceA
747 ! FUNCTION: EndUpdateResourceW
748 ! FUNCTION: EnterCriticalSection
749 ! FUNCTION: EnumCalendarInfoA
750 ! FUNCTION: EnumCalendarInfoExA
751 ! FUNCTION: EnumCalendarInfoExW
752 ! FUNCTION: EnumCalendarInfoW
753 ! FUNCTION: EnumDateFormatsA
754 ! FUNCTION: EnumDateFormatsExA
755 ! FUNCTION: EnumDateFormatsExW
756 ! FUNCTION: EnumDateFormatsW
757 ! FUNCTION: EnumerateLocalComputerNamesA
758 ! FUNCTION: EnumerateLocalComputerNamesW
759 ! FUNCTION: EnumLanguageGroupLocalesA
760 ! FUNCTION: EnumLanguageGroupLocalesW
761 ! FUNCTION: EnumResourceLanguagesA
762 ! FUNCTION: EnumResourceLanguagesW
763 ! FUNCTION: EnumResourceNamesA
764 ! FUNCTION: EnumResourceNamesW
765 ! FUNCTION: EnumResourceTypesA
766 ! FUNCTION: EnumResourceTypesW
767 ! FUNCTION: EnumSystemCodePagesA
768 ! FUNCTION: EnumSystemCodePagesW
769 ! FUNCTION: EnumSystemGeoID
770 ! FUNCTION: EnumSystemLanguageGroupsA
771 ! FUNCTION: EnumSystemLanguageGroupsW
772 ! FUNCTION: EnumSystemLocalesA
773 ! FUNCTION: EnumSystemLocalesW
774 ! FUNCTION: EnumTimeFormatsA
775 ! FUNCTION: EnumTimeFormatsW
776 ! FUNCTION: EnumUILanguagesA
777 ! FUNCTION: EnumUILanguagesW
778 ! FUNCTION: EraseTape
779 ! FUNCTION: EscapeCommFunction
780 ! FUNCTION: ExitProcess
781 ! FUNCTION: ExitThread
782 ! FUNCTION: ExitVDM
783 ! FUNCTION: ExpandEnvironmentStringsA
784 ! FUNCTION: ExpandEnvironmentStringsW
785 ! FUNCTION: ExpungeConsoleCommandHistoryA
786 ! FUNCTION: ExpungeConsoleCommandHistoryW
787 ! FUNCTION: ExtendVirtualBuffer
788 ! FUNCTION: FatalAppExitA
789 ! FUNCTION: FatalAppExitW
790 ! FUNCTION: FatalExit
791 ! FUNCTION: FileTimeToDosDateTime
792 ! FUNCTION: FileTimeToLocalFileTime
793 ! FUNCTION: FileTimeToSystemTime
794 ! FUNCTION: FillConsoleOutputAttribute
795 ! FUNCTION: FillConsoleOutputCharacterA
796 ! FUNCTION: FillConsoleOutputCharacterW
797 ! FUNCTION: FindActCtxSectionGuid
798 ! FUNCTION: FindActCtxSectionStringA
799 ! FUNCTION: FindActCtxSectionStringW
800 ! FUNCTION: FindAtomA
801 ! FUNCTION: FindAtomW
802 FUNCTION: BOOL FindClose ( HANDLE hFindFile ) ;
803 FUNCTION: BOOL FindCloseChangeNotification ( HANDLE hChangeHandle ) ;
804 FUNCTION: HANDLE FindFirstChangeNotificationW ( LPCTSTR lpPathName,
805                                         BOOL bWatchSubtree,
806                                         DWORD dwNotifyFilter ) ;
807 ALIAS: FindFirstChangeNotification FindFirstChangeNotificationW
808 ! FUNCTION: FindFirstFileA
809 ! FUNCTION: FindFirstFileExA
810 ! FUNCTION: FindFirstFileExW
811 FUNCTION: HANDLE FindFirstFileW ( LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData ) ;
812 ALIAS: FindFirstFile FindFirstFileW
813 ! FUNCTION: FindFirstVolumeA
814 ! FUNCTION: FindFirstVolumeMountPointA
815 ! FUNCTION: FindFirstVolumeMountPointW
816 ! FUNCTION: FindFirstVolumeW
817 FUNCTION: BOOL FindNextChangeNotification ( HANDLE hChangeHandle ) ;
818 ! FUNCTION: FindNextFileA
819 FUNCTION: BOOL FindNextFileW ( HANDLE hFindFile, LPWIN32_FIND_DATA lpFindFileData ) ;
820 ALIAS: FindNextFile FindNextFileW
821 ! FUNCTION: FindNextVolumeA
822 ! FUNCTION: FindNextVolumeMountPointA
823 ! FUNCTION: FindNextVolumeMountPointW
824 ! FUNCTION: FindNextVolumeW
825 ! FUNCTION: FindResourceA
826 ! FUNCTION: FindResourceExA
827 ! FUNCTION: FindResourceExW
828 ! FUNCTION: FindResourceW
829 ! FUNCTION: FindVolumeClose
830 ! FUNCTION: FindVolumeMountPointClose
831 ! FUNCTION: FlushConsoleInputBuffer
832 ! FUNCTION: FlushFileBuffers
833 ! FUNCTION: FlushInstructionCache
834 ! FUNCTION: FlushViewOfFile
835 ! FUNCTION: FoldStringA
836 ! FUNCTION: FoldStringW
837 ! FUNCTION: FormatMessageA
838 ! FUNCTION: FormatMessageW
839 ! FUNCTION: FreeConsole
840 ! FUNCTION: FreeEnvironmentStringsA
841 ! FUNCTION: FreeEnvironmentStringsW
842 ! FUNCTION: FreeLibrary
843 ! FUNCTION: FreeLibraryAndExitThread
844 ! FUNCTION: FreeResource
845 ! FUNCTION: FreeUserPhysicalPages
846 ! FUNCTION: FreeVirtualBuffer
847 ! FUNCTION: GenerateConsoleCtrlEvent
848 ! FUNCTION: GetACP
849 ! FUNCTION: GetAtomNameA
850 ! FUNCTION: GetAtomNameW
851 ! FUNCTION: GetBinaryType
852 ! FUNCTION: GetBinaryTypeA
853 ! FUNCTION: GetBinaryTypeW
854 ! FUNCTION: GetCalendarInfoA
855 ! FUNCTION: GetCalendarInfoW
856 ! FUNCTION: GetCommandLineA
857 ! FUNCTION: GetCommandLineW
858 ! FUNCTION: GetCommConfig
859 ! FUNCTION: GetCommMask
860 ! FUNCTION: GetCommModemStatus
861 ! FUNCTION: GetCommProperties
862 ! FUNCTION: GetCommState
863 ! FUNCTION: GetCommTimeouts
864 ! FUNCTION: GetComPlusPackageInstallStatus
865 ! FUNCTION: GetCompressedFileSizeA
866 ! FUNCTION: GetCompressedFileSizeW
867 FUNCTION: BOOL GetComputerNameW ( LPTSTR lpBuffer, LPDWORD lpnSize ) ;
868 ! FUNCTION: GetComputerNameExW
869 ! FUNCTION: GetComputerNameW
870 ALIAS: GetComputerName GetComputerNameW
871 ! FUNCTION: GetConsoleAliasA
872 ! FUNCTION: GetConsoleAliasesA
873 ! FUNCTION: GetConsoleAliasesLengthA
874 ! FUNCTION: GetConsoleAliasesLengthW
875 ! FUNCTION: GetConsoleAliasesW
876 ! FUNCTION: GetConsoleAliasExesA
877 ! FUNCTION: GetConsoleAliasExesLengthA
878 ! FUNCTION: GetConsoleAliasExesLengthW
879 ! FUNCTION: GetConsoleAliasExesW
880 ! FUNCTION: GetConsoleAliasW
881 ! FUNCTION: GetConsoleCharType
882 ! FUNCTION: GetConsoleCommandHistoryA
883 ! FUNCTION: GetConsoleCommandHistoryLengthA
884 ! FUNCTION: GetConsoleCommandHistoryLengthW
885 ! FUNCTION: GetConsoleCommandHistoryW
886 ! FUNCTION: GetConsoleCP
887 ! FUNCTION: GetConsoleCursorInfo
888 ! FUNCTION: GetConsoleCursorMode
889 ! FUNCTION: GetConsoleDisplayMode
890 ! FUNCTION: GetConsoleFontInfo
891 ! FUNCTION: GetConsoleFontSize
892 ! FUNCTION: GetConsoleHardwareState
893 ! FUNCTION: GetConsoleInputExeNameA
894 ! FUNCTION: GetConsoleInputExeNameW
895 ! FUNCTION: GetConsoleInputWaitHandle
896 ! FUNCTION: GetConsoleKeyboardLayoutNameA
897 ! FUNCTION: GetConsoleKeyboardLayoutNameW
898 ! FUNCTION: GetConsoleMode
899 ! FUNCTION: GetConsoleNlsMode
900 ! FUNCTION: GetConsoleOutputCP
901 ! FUNCTION: GetConsoleProcessList
902 ! FUNCTION: GetConsoleScreenBufferInfo
903 ! FUNCTION: GetConsoleSelectionInfo
904 FUNCTION: DWORD GetConsoleTitleW ( LPWSTR lpConsoleTitle, DWORD nSize ) ;
905 ALIAS: GetConsoleTitle GetConsoleTitleW
906 ! FUNCTION: GetConsoleWindow
907 ! FUNCTION: GetCPFileNameFromRegistry
908 ! FUNCTION: GetCPInfo
909 ! FUNCTION: GetCPInfoExA
910 ! FUNCTION: GetCPInfoExW
911 ! FUNCTION: GetCurrencyFormatA
912 ! FUNCTION: GetCurrencyFormatW
913 ! FUNCTION: GetCurrentActCtx
914 ! FUNCTION: GetCurrentConsoleFont
915 ! FUNCTION: GetCurrentDirectoryA
916 FUNCTION: BOOL GetCurrentDirectoryW ( DWORD len, LPTSTR buf ) ;
917 ALIAS: GetCurrentDirectory GetCurrentDirectoryW
918 FUNCTION: HANDLE GetCurrentProcess ( ) ;
919 FUNCTION: DWORD GetCurrentProcessId ( ) ;
920 FUNCTION: HANDLE GetCurrentThread ( ) ;
921 ! FUNCTION: GetCurrentThreadId
922 ! FUNCTION: GetDateFormatA
923 ! FUNCTION: GetDateFormatW
924 ! FUNCTION: GetDefaultCommConfigA
925 ! FUNCTION: GetDefaultCommConfigW
926 ! FUNCTION: GetDefaultSortkeySize
927 ! FUNCTION: GetDevicePowerState
928 ! FUNCTION: GetDiskFreeSpaceA
929 ! FUNCTION: GetDiskFreeSpaceExA
930 ! FUNCTION: GetDiskFreeSpaceExW
931 ! FUNCTION: GetDiskFreeSpaceW
932 ! FUNCTION: GetDllDirectoryA
933 ! FUNCTION: GetDllDirectoryW
934 ! FUNCTION: GetDriveTypeA
935 ! FUNCTION: GetDriveTypeW
936 ! FUNCTION: GetEnvironmentStrings
937 ! FUNCTION: GetEnvironmentStringsA
938 ! FUNCTION: GetEnvironmentStringsW
939 ! FUNCTION: GetEnvironmentVariableA
940 ! FUNCTION: GetEnvironmentVariableW
941 FUNCTION: BOOL GetExitCodeProcess ( HANDLE hProcess, LPDWORD lpExitCode ) ;
942 ! FUNCTION: GetExitCodeThread
943 ! FUNCTION: GetExpandedNameA
944 ! FUNCTION: GetExpandedNameW
945 ! FUNCTION: GetFileAttributesA
946 FUNCTION: DWORD GetFileAttributesW ( LPCTSTR lpFileName ) ;
947 ! FUNCTION: GetFileAttributesExA
948
949 : GetFileExInfoStandard 0 ; inline
950
951
952 FUNCTION: BOOL GetFileAttributesExW ( LPCTSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation ) ;
953
954 ALIAS: GetFileAttributesEx GetFileAttributesExW
955
956 FUNCTION: BOOL GetFileInformationByHandle ( HANDLE hFile, LPBY_HANDLE_FILE_INFORMATION lpFileInformation ) ;
957 FUNCTION: DWORD GetFileSize ( HANDLE hFile, LPDWORD lpFileSizeHigh ) ;
958 ! FUNCTION: GetFileSizeEx
959 FUNCTION: BOOL GetFileTime ( HANDLE hFile, LPFILETIME lpCreationTime, LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteTime ) ;
960 FUNCTION: DWORD GetFileType ( HANDLE hFile ) ;
961 ! FUNCTION: GetFirmwareEnvironmentVariableA
962 ! FUNCTION: GetFirmwareEnvironmentVariableW
963 ! FUNCTION: GetFullPathNameA
964 FUNCTION: DWORD GetFullPathNameW ( LPCTSTR lpFileName, DWORD nBufferLength, LPTSTR lpBuffer, LPTSTR* lpFilePart ) ;
965 ALIAS: GetFullPathName GetFullPathNameW
966
967 !  clear "license.txt" 32768 "char[32768]" <c-object> f over >r GetFullPathName r> swap 2 * head >string .
968
969 ! FUNCTION: GetGeoInfoA
970 ! FUNCTION: GetGeoInfoW
971 ! FUNCTION: GetHandleContext
972 FUNCTION: BOOL GetHandleInformation ( HANDLE hObject, LPDWORD lpdwFlags ) ;
973 ! FUNCTION: GetLargestConsoleWindowSize
974 FUNCTION: DWORD GetLastError ( ) ;
975 ! FUNCTION: GetLinguistLangSize
976 ! FUNCTION: GetLocaleInfoA
977 ! FUNCTION: GetLocaleInfoW
978 ! FUNCTION: GetLocalTime
979 ! FUNCTION: GetLogicalDrives
980 ! FUNCTION: GetLogicalDriveStringsA
981 ! FUNCTION: GetLogicalDriveStringsW
982 ! FUNCTION: GetLongPathNameA
983 ! FUNCTION: GetLongPathNameW
984 ! FUNCTION: GetMailslotInfo
985 ! FUNCTION: GetModuleFileNameA
986 ! FUNCTION: GetModuleFileNameW
987 FUNCTION: HMODULE GetModuleHandleW ( LPCWSTR lpModuleName ) ;
988 ALIAS: GetModuleHandle GetModuleHandleW
989 ! FUNCTION: GetModuleHandleExA
990 ! FUNCTION: GetModuleHandleExW
991 ! FUNCTION: GetNamedPipeHandleStateA
992 ! FUNCTION: GetNamedPipeHandleStateW
993 ! FUNCTION: GetNamedPipeInfo
994 ! FUNCTION: GetNativeSystemInfo
995 ! FUNCTION: GetNextVDMCommand
996 ! FUNCTION: GetNlsSectionName
997 ! FUNCTION: GetNumaAvailableMemory
998 ! FUNCTION: GetNumaAvailableMemoryNode
999 ! FUNCTION: GetNumaHighestNodeNumber
1000 ! FUNCTION: GetNumaNodeProcessorMask
1001 ! FUNCTION: GetNumaProcessorMap
1002 ! FUNCTION: GetNumaProcessorNode
1003 ! FUNCTION: GetNumberFormatA
1004 ! FUNCTION: GetNumberFormatW
1005 ! FUNCTION: GetNumberOfConsoleFonts
1006 ! FUNCTION: GetNumberOfConsoleInputEvents
1007 ! FUNCTION: GetNumberOfConsoleMouseButtons
1008 ! FUNCTION: GetOEMCP
1009 FUNCTION: BOOL GetOverlappedResult ( HANDLE hFile, LPOVERLAPPED lpOverlapped, LPDWORD lpNumberOfBytesTransferred, BOOL bWait ) ;
1010 FUNCTION: DWORD GetPriorityClass ( HANDLE hProcess ) ;
1011 ! FUNCTION: GetPrivateProfileIntA
1012 ! FUNCTION: GetPrivateProfileIntW
1013 ! FUNCTION: GetPrivateProfileSectionA
1014 ! FUNCTION: GetPrivateProfileSectionNamesA
1015 ! FUNCTION: GetPrivateProfileSectionNamesW
1016 ! FUNCTION: GetPrivateProfileSectionW
1017 ! FUNCTION: GetPrivateProfileStringA
1018 ! FUNCTION: GetPrivateProfileStringW
1019 ! FUNCTION: GetPrivateProfileStructA
1020 ! FUNCTION: GetPrivateProfileStructW
1021 FUNCTION: LPVOID GetProcAddress ( HMODULE hModule, char* lpProcName ) ;
1022 ! FUNCTION: GetProcessAffinityMask
1023 ! FUNCTION: GetProcessHandleCount
1024 ! FUNCTION: GetProcessHeap
1025 ! FUNCTION: GetProcessHeaps
1026 ! FUNCTION: GetProcessId
1027 ! FUNCTION: GetProcessIoCounters
1028 ! FUNCTION: GetProcessPriorityBoost
1029 ! FUNCTION: GetProcessShutdownParameters
1030 ! FUNCTION: GetProcessTimes
1031 ! FUNCTION: GetProcessVersion
1032 ! FUNCTION: GetProcessWorkingSetSize
1033 ! FUNCTION: GetProfileIntA
1034 ! FUNCTION: GetProfileIntW
1035 ! FUNCTION: GetProfileSectionA
1036 ! FUNCTION: GetProfileSectionW
1037 ! FUNCTION: GetProfileStringA
1038 ! FUNCTION: GetProfileStringW
1039 FUNCTION: BOOL GetQueuedCompletionStatus ( HANDLE hCompletionPort, LPDWORD lpNumberOfBytes, void* lpCompletionKey, LPOVERLAPPED lpOverlapped, DWORD dwMilliseconds ) ;
1040 ! FUNCTION: GetShortPathNameA
1041 ! FUNCTION: GetShortPathNameW
1042 ! FUNCTION: GetStartupInfoA
1043 ! FUNCTION: GetStartupInfoW
1044 FUNCTION: HANDLE GetStdHandle ( DWORD nStdHandle ) ;
1045 ! FUNCTION: GetStringTypeA
1046 ! FUNCTION: GetStringTypeExA
1047 ! FUNCTION: GetStringTypeExW
1048 ! FUNCTION: GetStringTypeW
1049 ! FUNCTION: GetSystemDefaultLangID
1050 ! FUNCTION: GetSystemDefaultLCID
1051 ! FUNCTION: GetSystemDefaultUILanguage
1052 ! FUNCTION: GetSystemDirectoryA
1053 FUNCTION: UINT GetSystemDirectoryW ( LPTSTR lpBuffer, UINT uSize ) ;
1054 ALIAS: GetSystemDirectory GetSystemDirectoryW
1055 FUNCTION: void GetSystemInfo ( LPSYSTEM_INFO lpSystemInfo ) ;
1056 ! FUNCTION: GetSystemPowerStatus
1057 ! FUNCTION: GetSystemRegistryQuota
1058 FUNCTION: void GetSystemTime ( LPSYSTEMTIME lpSystemTime ) ;
1059 ! FUNCTION: GetSystemTimeAdjustment
1060 FUNCTION: void GetSystemTimeAsFileTime ( LPFILETIME lpSystemTimeAsFileTime ) ;
1061 ! FUNCTION: GetSystemTimes
1062 ! FUNCTION: GetSystemWindowsDirectoryA
1063 FUNCTION: UINT GetSystemWindowsDirectoryW ( LPTSTR lpBuffer, UINT uSize ) ;
1064 ALIAS: GetSystemWindowsDirectory GetSystemWindowsDirectoryW
1065 ! FUNCTION: GetSystemWow64DirectoryA
1066 ! FUNCTION: GetSystemWow64DirectoryW
1067 ! FUNCTION: GetTapeParameters
1068 ! FUNCTION: GetTapePosition
1069 ! FUNCTION: GetTapeStatus
1070 ! FUNCTION: GetTempFileNameA
1071 ! FUNCTION: GetTempFileNameW
1072 ! FUNCTION: GetTempPathA
1073 ! FUNCTION: GetTempPathW
1074 ! FUNCTION: GetThreadContext
1075 ! FUNCTION: GetThreadIOPendingFlag
1076 ! FUNCTION: GetThreadLocale
1077 FUNCTION: int GetThreadPriority ( HANDLE hThread ) ;
1078 FUNCTION: BOOL GetThreadPriorityBoost ( HANDLE hThread, PBOOL pDisablePriorityBoost ) ;
1079 ! FUNCTION: GetThreadSelectorEntry
1080 ! FUNCTION: GetThreadTimes
1081 ! FUNCTION: GetTickCount
1082 ! FUNCTION: GetTimeFormatA
1083 ! FUNCTION: GetTimeFormatW
1084 FUNCTION: DWORD GetTimeZoneInformation ( LPTIME_ZONE_INFORMATION lpTimeZoneInformation ) ;
1085 ! FUNCTION: GetUserDefaultLangID
1086 ! FUNCTION: GetUserDefaultLCID
1087 ! FUNCTION: GetUserDefaultUILanguage
1088 ! FUNCTION: GetUserGeoID
1089 ! FUNCTION: GetVDMCurrentDirectories
1090 FUNCTION: DWORD GetVersion ( ) ;
1091 FUNCTION: BOOL GetVersionExW ( LPOSVERSIONINFO lpVersionInfo ) ;
1092 ALIAS: GetVersionEx GetVersionExW
1093 ! FUNCTION: GetVolumeInformationA
1094 ! FUNCTION: GetVolumeInformationW
1095 ! FUNCTION: GetVolumeNameForVolumeMountPointA
1096 ! FUNCTION: GetVolumeNameForVolumeMountPointW
1097 ! FUNCTION: GetVolumePathNameA
1098 ! FUNCTION: GetVolumePathNamesForVolumeNameA
1099 ! FUNCTION: GetVolumePathNamesForVolumeNameW
1100 ! FUNCTION: GetVolumePathNameW
1101 ! FUNCTION: GetWindowsDirectoryA
1102 FUNCTION: UINT GetWindowsDirectoryW ( LPTSTR lpBuffer, UINT uSize ) ;
1103 ALIAS: GetWindowsDirectory GetWindowsDirectoryW
1104 ! FUNCTION: GetWriteWatch
1105 ! FUNCTION: GlobalAddAtomA
1106 ! FUNCTION: GlobalAddAtomW
1107 FUNCTION: HGLOBAL GlobalAlloc ( UINT uFlags, SIZE_T dwBytes ) ;
1108 ! FUNCTION: GlobalCompact
1109 ! FUNCTION: GlobalDeleteAtom
1110 ! FUNCTION: GlobalFindAtomA
1111 ! FUNCTION: GlobalFindAtomW
1112 ! FUNCTION: GlobalFix
1113 ! FUNCTION: GlobalFlags
1114 ! FUNCTION: GlobalFree
1115 ! FUNCTION: GlobalGetAtomNameA
1116 ! FUNCTION: GlobalGetAtomNameW
1117 ! FUNCTION: GlobalHandle
1118 FUNCTION: LPVOID GlobalLock ( HGLOBAL hMem ) ;
1119 FUNCTION: void GlobalMemoryStatus ( LPMEMORYSTATUS lpBuffer ) ;
1120 FUNCTION: BOOL GlobalMemoryStatusEx ( LPMEMORYSTATUSEX lpBuffer ) ;
1121 ! FUNCTION: GlobalReAlloc
1122 ! FUNCTION: GlobalSize
1123 ! FUNCTION: GlobalUnfix
1124 FUNCTION: BOOL GlobalUnlock ( HGLOBAL hMem ) ;
1125 ! FUNCTION: GlobalUnWire
1126 ! FUNCTION: GlobalWire
1127 ! FUNCTION: Heap32First
1128 ! FUNCTION: Heap32ListFirst
1129 ! FUNCTION: Heap32ListNext
1130 ! FUNCTION: Heap32Next
1131 ! FUNCTION: HeapAlloc
1132 ! FUNCTION: HeapCompact
1133 ! FUNCTION: HeapCreate
1134 ! FUNCTION: HeapCreateTagsW
1135 ! FUNCTION: HeapDestroy
1136 ! FUNCTION: HeapExtend
1137 ! FUNCTION: HeapFree
1138 ! FUNCTION: HeapLock
1139 ! FUNCTION: HeapQueryInformation
1140 ! FUNCTION: HeapQueryTagW
1141 ! FUNCTION: HeapReAlloc
1142 ! FUNCTION: HeapSetInformation
1143 ! FUNCTION: HeapSize
1144 ! FUNCTION: HeapSummary
1145 ! FUNCTION: HeapUnlock
1146 ! FUNCTION: HeapUsage
1147 ! FUNCTION: HeapValidate
1148 ! FUNCTION: HeapWalk
1149 ! FUNCTION: InitAtomTable
1150 ! FUNCTION: InitializeCriticalSection
1151 ! FUNCTION: InitializeCriticalSectionAndSpinCount
1152 ! FUNCTION: InitializeSListHead
1153 ! FUNCTION: InterlockedCompareExchange
1154 ! FUNCTION: InterlockedDecrement
1155 ! FUNCTION: InterlockedExchange
1156 ! FUNCTION: InterlockedExchangeAdd
1157 ! FUNCTION: InterlockedFlushSList
1158 ! FUNCTION: InterlockedIncrement
1159 ! FUNCTION: InterlockedPopEntrySList
1160 ! FUNCTION: InterlockedPushEntrySList
1161 ! FUNCTION: InvalidateConsoleDIBits
1162 ! FUNCTION: IsBadCodePtr
1163 ! FUNCTION: IsBadHugeReadPtr
1164 ! FUNCTION: IsBadHugeWritePtr
1165 ! FUNCTION: IsBadReadPtr
1166 ! FUNCTION: IsBadStringPtrA
1167 ! FUNCTION: IsBadStringPtrW
1168 ! FUNCTION: IsBadWritePtr
1169 ! FUNCTION: IsDBCSLeadByte
1170 ! FUNCTION: IsDBCSLeadByteEx
1171 ! FUNCTION: IsDebuggerPresent
1172 ! FUNCTION: IsProcessInJob
1173 FUNCTION: BOOL IsProcessorFeaturePresent ( DWORD ProcessorFeature ) ;
1174 ! FUNCTION: IsSystemResumeAutomatic
1175 ! FUNCTION: IsValidCodePage
1176 ! FUNCTION: IsValidLanguageGroup
1177 ! FUNCTION: IsValidLocale
1178 ! FUNCTION: IsValidUILanguage
1179 ! FUNCTION: IsWow64Process
1180 ! FUNCTION: LCMapStringA
1181 ! FUNCTION: LCMapStringW
1182 ! FUNCTION: LeaveCriticalSection
1183 ! FUNCTION: LoadLibraryA
1184 ! FUNCTION: LoadLibraryExA
1185 FUNCTION: HMODULE LoadLibraryExW ( LPCTSTR lpFile, HANDLE hFile, DWORD flags ) ;
1186 ALIAS: LoadLibraryEx LoadLibraryExW
1187 ! FUNCTION: LoadLibraryW
1188 ! FUNCTION: LoadModule
1189 ! FUNCTION: LoadResource
1190 ! FUNCTION: LocalAlloc
1191 ! FUNCTION: LocalCompact
1192 ! FUNCTION: LocalFileTimeToFileTime
1193 ! FUNCTION: LocalFlags
1194 FUNCTION: HLOCAL LocalFree ( HLOCAL hMem ) ;
1195 ! FUNCTION: LocalHandle
1196 ! FUNCTION: LocalLock
1197 ! FUNCTION: LocalReAlloc
1198 ! FUNCTION: LocalShrink
1199 ! FUNCTION: LocalSize
1200 ! FUNCTION: LocalUnlock
1201 ! FUNCTION: LockFile
1202 ! FUNCTION: LockFileEx
1203 ! FUNCTION: LockResource
1204 ! FUNCTION: lstrcat
1205 ! FUNCTION: lstrcatA
1206 ! FUNCTION: lstrcatW
1207 ! FUNCTION: lstrcmp
1208 ! FUNCTION: lstrcmpA
1209 ! FUNCTION: lstrcmpi
1210 ! FUNCTION: lstrcmpiA
1211 ! FUNCTION: lstrcmpiW
1212 ! FUNCTION: lstrcmpW
1213 ! FUNCTION: lstrcpy
1214 ! FUNCTION: lstrcpyA
1215 ! FUNCTION: lstrcpyn
1216 ! FUNCTION: lstrcpynA
1217 ! FUNCTION: lstrcpynW
1218 ! FUNCTION: lstrcpyW
1219 ! FUNCTION: lstrlen
1220 ! FUNCTION: lstrlenA
1221 ! FUNCTION: lstrlenW
1222 ! FUNCTION: LZClose
1223 ! FUNCTION: LZCloseFile
1224 ! FUNCTION: LZCopy
1225 ! FUNCTION: LZCreateFileW
1226 ! FUNCTION: LZDone
1227 ! FUNCTION: LZInit
1228 ! FUNCTION: LZOpenFileA
1229 ! FUNCTION: LZOpenFileW
1230 ! FUNCTION: LZRead
1231 ! FUNCTION: LZSeek
1232 ! FUNCTION: LZStart
1233 ! FUNCTION: MapUserPhysicalPages
1234 ! FUNCTION: MapUserPhysicalPagesScatter
1235 FUNCTION: LPVOID MapViewOfFile ( HANDLE hFileMappingObject,
1236                                  DWORD dwDesiredAccess,
1237                                  DWORD dwFileOffsetHigh,
1238                                  DWORD dwFileOffsetLow,
1239                                  SIZE_T dwNumberOfBytesToMap ) ;
1240
1241 FUNCTION: LPVOID MapViewOfFileEx ( HANDLE hFileMappingObject,
1242                                  DWORD dwDesiredAccess,
1243                                  DWORD dwFileOffsetHigh,
1244                                  DWORD dwFileOffsetLow,
1245                                  SIZE_T dwNumberOfBytesToMap,
1246                                  LPVOID lpBaseAddress ) ;
1247
1248 ! FUNCTION: Module32First
1249 ! FUNCTION: Module32FirstW
1250 ! FUNCTION: Module32Next
1251 ! FUNCTION: Module32NextW
1252 ! FUNCTION: MoveFileA
1253 ! FUNCTION: MoveFileExA
1254 ! FUNCTION: MoveFileExW
1255 FUNCTION: BOOL MoveFileW ( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName ) ;
1256 ALIAS: MoveFile MoveFileW
1257 ! FUNCTION: MoveFileWithProgressA
1258 ! FUNCTION: MoveFileWithProgressW
1259 ! FUNCTION: MulDiv
1260 ! FUNCTION: MultiByteToWideChar
1261 ! FUNCTION: NlsConvertIntegerToString
1262 ! FUNCTION: NlsGetCacheUpdateCount
1263 ! FUNCTION: NlsResetProcessLocale
1264 ! FUNCTION: NumaVirtualQueryNode
1265 ! FUNCTION: OpenConsoleW
1266 ! FUNCTION: OpenDataFile
1267 ! FUNCTION: OpenEventA
1268 ! FUNCTION: OpenEventW
1269 ! WARNING: OpenFile is limited to paths of 128 chars in length.  Do not use!
1270 ! FUNCTION: HFILE OpenFile ( LPCTSTR lpFileName, LPOFSTRUCT lpReOpenBuff, UINT uStyle ) ;
1271 FUNCTION: HANDLE OpenFileMappingW ( DWORD dwDesiredAccess,
1272                                     BOOL bInheritHandle,
1273                                     LPCTSTR lpName ) ;
1274 ALIAS: OpenFileMapping OpenFileMappingW
1275 ! FUNCTION: OpenJobObjectA
1276 ! FUNCTION: OpenJobObjectW
1277 ! FUNCTION: OpenMutexA
1278 ! FUNCTION: OpenMutexW
1279 FUNCTION: HANDLE OpenProcess ( DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId ) ;
1280 ! FUNCTION: OpenProfileUserMapping
1281 ! FUNCTION: OpenSemaphoreA
1282 ! FUNCTION: OpenSemaphoreW
1283 ! FUNCTION: OpenThread
1284 ! FUNCTION: OpenWaitableTimerA
1285 ! FUNCTION: OpenWaitableTimerW
1286 ! FUNCTION: OutputDebugStringA
1287 ! FUNCTION: OutputDebugStringW
1288 ! FUNCTION: PeekConsoleInputA
1289 ! FUNCTION: PeekConsoleInputW
1290 ! FUNCTION: PeekNamedPipe
1291 ! FUNCTION: PostQueuedCompletionStatus
1292 ! FUNCTION: PrepareTape
1293 ! FUNCTION: PrivCopyFileExW
1294 ! FUNCTION: PrivMoveFileIdentityW
1295 ! FUNCTION: Process32First
1296 ! FUNCTION: Process32FirstW
1297 ! FUNCTION: Process32Next
1298 ! FUNCTION: Process32NextW
1299 ! FUNCTION: ProcessIdToSessionId
1300 ! FUNCTION: PulseEvent
1301 ! FUNCTION: PurgeComm
1302 ! FUNCTION: QueryActCtxW
1303 ! FUNCTION: QueryDepthSList
1304 ! FUNCTION: QueryDosDeviceA
1305 ! FUNCTION: QueryDosDeviceW
1306 ! FUNCTION: QueryInformationJobObject
1307 ! FUNCTION: QueryMemoryResourceNotification
1308 ! FUNCTION: QueryPerformanceCounter
1309 ! FUNCTION: QueryPerformanceFrequency
1310 ! FUNCTION: QueryWin31IniFilesMappedToRegistry
1311 ! FUNCTION: QueueUserAPC
1312 ! FUNCTION: QueueUserWorkItem
1313 ! FUNCTION: RaiseException
1314 ! FUNCTION: ReadConsoleA
1315 ! FUNCTION: ReadConsoleInputA
1316 ! FUNCTION: ReadConsoleInputExA
1317 ! FUNCTION: ReadConsoleInputExW
1318 ! FUNCTION: ReadConsoleInputW
1319 ! FUNCTION: ReadConsoleOutputA
1320 ! FUNCTION: ReadConsoleOutputAttribute
1321 ! FUNCTION: ReadConsoleOutputCharacterA
1322 ! FUNCTION: ReadConsoleOutputCharacterW
1323 ! FUNCTION: ReadConsoleOutputW
1324 ! FUNCTION: ReadConsoleW
1325 FUNCTION: BOOL ReadDirectoryChangesW ( HANDLE hDirectory, LPVOID lpBuffer, DWORD nBufferLength, BOOL bWatchSubtree, DWORD dwNotifyFilter, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped, void* lpCompletionRoutine ) ;
1326 FUNCTION: BOOL ReadFile ( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, void* lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped ) ;
1327 ! FUNCTION: BOOL ReadFile ( HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped ) ;
1328 FUNCTION: BOOL ReadFileEx ( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ) ;
1329 ! FUNCTION: ReadFileScatter
1330 FUNCTION: BOOL ReadProcessMemory ( HANDLE hProcess, void* lpBaseAddress, void* lpBuffer, long nSize, long* lpNumberOfBytesRead )  ;
1331 ! FUNCTION: RegisterConsoleIME
1332 ! FUNCTION: RegisterConsoleOS2
1333 ! FUNCTION: RegisterConsoleVDM
1334 ! FUNCTION: RegisterWaitForInputIdle
1335 ! FUNCTION: RegisterWaitForSingleObject
1336 ! FUNCTION: RegisterWaitForSingleObjectEx
1337 ! FUNCTION: RegisterWowBaseHandlers
1338 ! FUNCTION: RegisterWowExec
1339 ! FUNCTION: ReleaseActCtx
1340 ! FUNCTION: ReleaseMutex
1341 ! FUNCTION: ReleaseSemaphore
1342 ! FUNCTION: RemoveDirectoryA
1343 FUNCTION: BOOL RemoveDirectoryW ( LPCTSTR lpPathName ) ;
1344 ALIAS: RemoveDirectory RemoveDirectoryW
1345 ! FUNCTION: RemoveLocalAlternateComputerNameA
1346 ! FUNCTION: RemoveLocalAlternateComputerNameW
1347 ! FUNCTION: RemoveVectoredExceptionHandler
1348 ! FUNCTION: ReplaceFile
1349 ! FUNCTION: ReplaceFileA
1350 ! FUNCTION: ReplaceFileW
1351 ! FUNCTION: RequestDeviceWakeup
1352 ! FUNCTION: RequestWakeupLatency
1353 ! FUNCTION: ResetEvent
1354 ! FUNCTION: ResetWriteWatch
1355 ! FUNCTION: RestoreLastError
1356 ! FUNCTION: ResumeThread
1357 ! FUNCTION: RtlCaptureContext
1358 ! FUNCTION: RtlCaptureStackBackTrace
1359 ! FUNCTION: RtlFillMemory
1360 ! FUNCTION: RtlMoveMemory
1361 ! FUNCTION: RtlUnwind
1362 ! FUNCTION: RtlZeroMemory
1363 ! FUNCTION: ScrollConsoleScreenBufferA
1364 ! FUNCTION: ScrollConsoleScreenBufferW
1365 ! FUNCTION: SearchPathA
1366 ! FUNCTION: SearchPathW
1367 ! FUNCTION: SetCalendarInfoA
1368 ! FUNCTION: SetCalendarInfoW
1369 ! FUNCTION: SetClientTimeZoneInformation
1370 ! FUNCTION: SetCommBreak
1371 ! FUNCTION: SetCommConfig
1372 ! FUNCTION: SetCommMask
1373 ! FUNCTION: SetCommState
1374 ! FUNCTION: SetCommTimeouts
1375 ! FUNCTION: SetComPlusPackageInstallStatus
1376 ! FUNCTION: SetComputerNameA
1377 ! FUNCTION: SetComputerNameExA
1378 ! FUNCTION: SetComputerNameExW
1379 ! FUNCTION: SetComputerNameW
1380 ! FUNCTION: SetConsoleActiveScreenBuffer
1381 ! FUNCTION: SetConsoleCommandHistoryMode
1382 ! FUNCTION: SetConsoleCP
1383 ! FUNCTION: SetConsoleCtrlHandler
1384 ! FUNCTION: SetConsoleCursor
1385 ! FUNCTION: SetConsoleCursorInfo
1386 ! FUNCTION: SetConsoleCursorMode
1387 ! FUNCTION: SetConsoleCursorPosition
1388 ! FUNCTION: SetConsoleDisplayMode
1389 ! FUNCTION: SetConsoleFont
1390 ! FUNCTION: SetConsoleHardwareState
1391 ! FUNCTION: SetConsoleIcon
1392 ! FUNCTION: SetConsoleInputExeNameA
1393 ! FUNCTION: SetConsoleInputExeNameW
1394 ! FUNCTION: SetConsoleKeyShortcuts
1395 ! FUNCTION: SetConsoleLocalEUDC
1396 ! FUNCTION: SetConsoleMaximumWindowSize
1397 ! FUNCTION: SetConsoleMenuClose
1398 ! FUNCTION: SetConsoleMode
1399 ! FUNCTION: SetConsoleNlsMode
1400 ! FUNCTION: SetConsoleNumberOfCommandsA
1401 ! FUNCTION: SetConsoleNumberOfCommandsW
1402 ! FUNCTION: SetConsoleOS2OemFormat
1403 ! FUNCTION: SetConsoleOutputCP
1404 ! FUNCTION: SetConsolePalette
1405 ! FUNCTION: SetConsoleScreenBufferSize
1406 FUNCTION: BOOL SetConsoleTextAttribute ( HANDLE hConsoleOutput, WORD wAttributes ) ;
1407 FUNCTION: BOOL SetConsoleTitleW ( LPCWSTR lpConsoleTitle ) ;
1408 ALIAS: SetConsoleTitle SetConsoleTitleW
1409 ! FUNCTION: SetConsoleWindowInfo
1410 ! FUNCTION: SetCPGlobal
1411 ! FUNCTION: SetCriticalSectionSpinCount
1412 ! FUNCTION: SetCurrentDirectoryA
1413 FUNCTION: BOOL SetCurrentDirectoryW ( LPCWSTR lpDirectory ) ;
1414 ALIAS: SetCurrentDirectory SetCurrentDirectoryW
1415 ! FUNCTION: SetDefaultCommConfigA
1416 ! FUNCTION: SetDefaultCommConfigW
1417 ! FUNCTION: SetDllDirectoryA
1418 ! FUNCTION: SetDllDirectoryW
1419 FUNCTION: BOOL SetEndOfFile ( HANDLE hFile ) ;
1420 ! FUNCTION: SetEnvironmentVariableA
1421 ! FUNCTION: SetEnvironmentVariableW
1422 ! FUNCTION: SetErrorMode
1423 ! FUNCTION: SetEvent
1424 ! FUNCTION: SetFileApisToANSI
1425 ! FUNCTION: SetFileApisToOEM
1426 ! FUNCTION: SetFileAttributesA
1427 ! FUNCTION: SetFileAttributesW
1428 FUNCTION: DWORD SetFilePointer ( HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod ) ;
1429 FUNCTION: DWORD SetFilePointerEx ( HANDLE hFile, LARGE_INTEGER lDistanceToMove, PLARGE_INTEGER lpDistanceToMoveHigh, DWORD dwMoveMethod ) ;
1430 ! FUNCTION: SetFileShortNameA
1431 ! FUNCTION: SetFileShortNameW
1432 FUNCTION: BOOL SetFileTime ( HANDLE hFile, FILETIME* lpCreationTime, FILETIME* lpLastAccessTime, FILETIME* lpLastWriteTime ) ;
1433 ! FUNCTION: SetFileValidData
1434 ! FUNCTION: SetFirmwareEnvironmentVariableA
1435 ! FUNCTION: SetFirmwareEnvironmentVariableW
1436 ! FUNCTION: SetHandleContext
1437 ! FUNCTION: SetHandleCount
1438 FUNCTION: BOOL SetHandleInformation ( HANDLE hObject, DWORD dwMask, DWORD dwFlags ) ;
1439 ! FUNCTION: SetInformationJobObject
1440 ! FUNCTION: SetLastConsoleEventActive
1441 ! FUNCTION: SetLastError
1442 ! FUNCTION: SetLocaleInfoA
1443 ! FUNCTION: SetLocaleInfoW
1444 ! FUNCTION: SetLocalPrimaryComputerNameA
1445 ! FUNCTION: SetLocalPrimaryComputerNameW
1446 ! FUNCTION: SetLocalTime
1447 ! FUNCTION: SetMailslotInfo
1448 ! FUNCTION: SetMessageWaitingIndicator
1449 ! FUNCTION: SetNamedPipeHandleState
1450 FUNCTION: BOOL SetPriorityClass ( HANDLE hProcess, DWORD dwPriorityClass ) ;
1451 ! FUNCTION: SetProcessAffinityMask
1452 FUNCTION: BOOL SetProcessPriorityBoost ( HANDLE hProcess, BOOL disablePriorityBoost ) ;
1453 ! FUNCTION: SetProcessShutdownParameters
1454 ! FUNCTION: SetProcessWorkingSetSize
1455 ! FUNCTION: SetStdHandle
1456 ! FUNCTION: SetSystemPowerState
1457 ! FUNCTION: SetSystemTime
1458 ! FUNCTION: SetSystemTimeAdjustment
1459 ! FUNCTION: SetTapeParameters
1460 ! FUNCTION: SetTapePosition
1461 ! FUNCTION: SetTermsrvAppInstallMode
1462 ! FUNCTION: SetThreadAffinityMask
1463 ! FUNCTION: SetThreadContext
1464 ! FUNCTION: SetThreadExecutionState
1465 ! FUNCTION: SetThreadIdealProcessor
1466 ! FUNCTION: SetThreadLocale
1467 FUNCTION: BOOL SetThreadPriority ( HANDLE hThread, int nPriority ) ;
1468 FUNCTION: BOOL SetThreadPriorityBoost ( HANDLE hThread, BOOL disablePriorityBoost ) ;
1469 ! FUNCTION: SetThreadUILanguage
1470 ! FUNCTION: SetTimerQueueTimer
1471 ! FUNCTION: SetTimeZoneInformation
1472 ! FUNCTION: SetUnhandledExceptionFilter
1473 ! FUNCTION: SetupComm
1474 ! FUNCTION: SetUserGeoID
1475 ! FUNCTION: SetVDMCurrentDirectories
1476 ! FUNCTION: SetVolumeLabelA
1477 ! FUNCTION: SetVolumeLabelW
1478 ! FUNCTION: SetVolumeMountPointA
1479 ! FUNCTION: SetVolumeMountPointW
1480 ! FUNCTION: SetWaitableTimer
1481 ! FUNCTION: ShowConsoleCursor
1482 ! FUNCTION: SignalObjectAndWait
1483 ! FUNCTION: SizeofResource
1484 ! FUNCTION: Sleep
1485 FUNCTION: DWORD SleepEx ( DWORD dwMilliSeconds, BOOL bAlertable ) ;
1486 ! FUNCTION: SuspendThread
1487 ! FUNCTION: SwitchToFiber
1488 ! FUNCTION: SwitchToThread
1489 FUNCTION: BOOL SystemTimeToFileTime ( SYSTEMTIME* lpSystemTime, LPFILETIME lpFileTime ) ;
1490 ! FUNCTION: SystemTimeToTzSpecificLocalTime
1491 ! FUNCTION: TerminateJobObject
1492 FUNCTION: BOOL TerminateProcess ( HANDLE hProcess, DWORD uExit ) ;
1493 ! FUNCTION: TerminateThread
1494 ! FUNCTION: TermsrvAppInstallMode
1495 ! FUNCTION: Thread32First
1496 ! FUNCTION: Thread32Next
1497 ! FUNCTION: TlsAlloc
1498 ! FUNCTION: TlsFree
1499 ! FUNCTION: TlsGetValue
1500 ! FUNCTION: TlsSetValue
1501 ! FUNCTION: Toolhelp32ReadProcessMemory
1502 ! FUNCTION: TransactNamedPipe
1503 ! FUNCTION: TransmitCommChar
1504 ! FUNCTION: TrimVirtualBuffer
1505 ! FUNCTION: TryEnterCriticalSection
1506 ! FUNCTION: TzSpecificLocalTimeToSystemTime
1507 ! FUNCTION: UnhandledExceptionFilter
1508 ! FUNCTION: UnlockFile
1509 ! FUNCTION: UnlockFileEx
1510 FUNCTION: BOOL UnmapViewOfFile ( LPCVOID lpBaseAddress ) ;
1511 ! FUNCTION: UnregisterConsoleIME
1512 ! FUNCTION: UnregisterWait
1513 ! FUNCTION: UnregisterWaitEx
1514 ! FUNCTION: UpdateResourceA
1515 ! FUNCTION: UpdateResourceW
1516 ! FUNCTION: UTRegister
1517 ! FUNCTION: UTUnRegister
1518 ! FUNCTION: ValidateLCType
1519 ! FUNCTION: ValidateLocale
1520 ! FUNCTION: VDMConsoleOperation
1521 ! FUNCTION: VDMOperationStarted
1522 ! FUNCTION: VerifyConsoleIoHandle
1523 ! FUNCTION: VerifyVersionInfoA
1524 ! FUNCTION: VerifyVersionInfoW
1525 ! FUNCTION: VerLanguageNameA
1526 ! FUNCTION: VerLanguageNameW
1527 ! FUNCTION: VerSetConditionMask
1528 ! FUNCTION: VirtualAlloc
1529 FUNCTION: HANDLE VirtualAllocEx ( HANDLE hProcess, void* lpAddress, long dwSize, DWORD flAllocationType, DWORD flProtect ) ;
1530 ! FUNCTION: VirtualBufferExceptionHandler
1531 ! FUNCTION: VirtualFree
1532 FUNCTION: BOOL VirtualFreeEx ( HANDLE hProcess, void* lpAddress, long dwSize, DWORD dwFreeType ) ;
1533 ! FUNCTION: VirtualLock
1534 ! FUNCTION: VirtualProtect
1535 ! FUNCTION: VirtualProtectEx
1536 ! FUNCTION: VirtualQuery
1537 FUNCTION: BOOL VirtualQueryEx ( HANDLE hProcess, void* lpAddress, MEMORY_BASIC_INFORMATION* lpBuffer, SIZE_T dwLength ) ;
1538 ! FUNCTION: VirtualUnlock
1539 ! FUNCTION: WaitCommEvent
1540 ! FUNCTION: WaitForDebugEvent
1541 FUNCTION: DWORD WaitForMultipleObjects ( DWORD nCount, HANDLE* lpHandles, BOOL bWaitAll, DWORD dwMilliseconds ) ;
1542 ! FUNCTION: WaitForMultipleObjectsEx
1543 FUNCTION: BOOL WaitForSingleObject ( HANDLE hHandle, DWORD dwMilliseconds ) ;
1544 ! FUNCTION: WaitForSingleObjectEx
1545 ! FUNCTION: WaitNamedPipeA
1546 ! FUNCTION: WaitNamedPipeW
1547 ! FUNCTION: WideCharToMultiByte
1548 ! FUNCTION: WinExec
1549 ! FUNCTION: WriteConsoleA
1550 ! FUNCTION: WriteConsoleInputA
1551 ! FUNCTION: WriteConsoleInputVDMA
1552 ! FUNCTION: WriteConsoleInputVDMW
1553 ! FUNCTION: WriteConsoleInputW
1554 ! FUNCTION: WriteConsoleOutputA
1555 ! FUNCTION: WriteConsoleOutputAttribute
1556 ! FUNCTION: WriteConsoleOutputCharacterA
1557 ! FUNCTION: WriteConsoleOutputCharacterW
1558 ! FUNCTION: WriteConsoleOutputW
1559 ! FUNCTION: WriteConsoleW
1560 FUNCTION: BOOL WriteFile ( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToWrite, void* lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped ) ;
1561 FUNCTION: BOOL WriteFileEx ( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ) ;
1562 ! FUNCTION: WriteFileGather
1563 ! FUNCTION: WritePrivateProfileSectionA
1564 ! FUNCTION: WritePrivateProfileSectionW
1565 ! FUNCTION: WritePrivateProfileStringA
1566 ! FUNCTION: WritePrivateProfileStringW
1567 ! FUNCTION: WritePrivateProfileStructA
1568 ! FUNCTION: WritePrivateProfileStructW
1569 FUNCTION: BOOL WriteProcessMemory ( HANDLE hProcess, void* lpBaseAddress, void* lpBuffer, long nSize, long* lpNumberOfBytesWritten )  ;
1570 ! FUNCTION: WriteProfileSectionA
1571 ! FUNCTION: WriteProfileSectionW
1572 ! FUNCTION: WriteProfileStringA
1573 ! FUNCTION: WriteProfileStringW
1574 ! FUNCTION: WriteTapemark
1575 ! FUNCTION: WTSGetActiveConsoleSessionId
1576 ! FUNCTION: ZombifyActCtx
1577
1578 : with-global-lock ( HGLOBAL quot -- )
1579     swap [ GlobalLock swap call ] keep GlobalUnlock drop ; inline