source: trunk/src/kernel32/stubs.cpp@ 61

Last change on this file since 61 was 61, checked in by phaller, 26 years ago

ADD: Added CmdBatNotification-stub and GetVDMCurrentDirectories-stub used by NT4's CMD.EXE

File size: 149.3 KB
Line 
1/*
2 *
3 * Project Odin Software License can be found in LICENSE.TXT
4 *
5 */
6/*
7 * Win32 KERNEL32 Subsystem for OS/2
8 *
9 * 1998/05/19 PH Patrick Haller (haller@zebra.fh-weingarten.de)
10 *
11 * @(#) Stubs.H 1.0.0 1998/05/19 PH start
12 */
13
14/*****************************************************************************
15 * Includes *
16 *****************************************************************************/
17#include <os2win.h>
18#include <winnls.h>
19#include "unicode.h"
20#include <builtin.h>
21#include "handlemanager.h"
22
23#include "stubs.h"
24
25
26/*****************************************************************************
27 * Defines *
28 *****************************************************************************/
29
30
31// For DefineDosDevice
32
33#define DDD_RAW_TARGET_PATH 0x00000001
34#define DDD_REMOVE_DEFINITION 0x00000002
35#define DDD_EXACT_MATCH_ON_REMOVE 0x00000004
36#define DDD_NO_BROADCAST_SYSTEM 0x00000008
37
38
39// For Backup functions
40
41//
42// Stream Ids
43//
44
45#define BACKUP_INVALID 0x00000000
46#define BACKUP_DATA 0x00000001
47#define BACKUP_EA_DATA 0x00000002
48#define BACKUP_SECURITY_DATA 0x00000003
49#define BACKUP_ALTERNATE_DATA 0x00000004
50#define BACKUP_LINK 0x00000005
51#define BACKUP_PROPERTY_DATA 0x00000006
52
53//
54// Stream Attributes
55//
56
57#define STREAM_NORMAL_ATTRIBUTE 0x00000000
58#define STREAM_MODIFIED_WHEN_READ 0x00000001
59#define STREAM_CONTAINS_SECURITY 0x00000002
60#define STREAM_CONTAINS_PROPERTIES 0x00000004
61
62// Named Pipes
63
64#define NMPWAIT_WAIT_FOREVER 0xffffffff
65#define NMPWAIT_NOWAIT 0x00000001
66#define NMPWAIT_USE_DEFAULT_WAIT 0x00000000
67
68
69// Locale
70#define LCID DWORD
71
72/*
73 * Locale Dependent Mapping Flags.
74 */
75
76#define LCMAP_LOWERCASE 0x00000100 /* lower case letters */
77#define LCMAP_UPPERCASE 0x00000200 /* upper case letters */
78#define LCMAP_SORTKEY 0x00000400 /* WC sort key (normalize) */
79#define LCMAP_BYTEREV 0x00000800 /* byte reversal */
80
81#define LCMAP_HIRAGANA 0x00100000 /* map katakana to hiragana */
82#define LCMAP_KATAKANA 0x00200000 /* map hiragana to katakana */
83#define LCMAP_HALFWIDTH 0x00400000 /* map double byte to single byte */
84#define LCMAP_FULLWIDTH 0x00800000 /* map single byte to double byte */
85
86#define LCMAP_LINGUISTIC_CASING 0x01000000 /* use linguistic rules for casing */
87
88#define LCMAP_SIMPLIFIED_CHINESE 0x02000000 /* map traditional chinese to simplified chinese */
89#define LCMAP_TRADITIONAL_CHINESE 0x04000000 /* map simplified chinese to traditional chinese */
90
91
92
93/*
94 * Locale Enumeration Flags.
95 */
96#define LCID_INSTALLED 0x00000001 /* installed locale ids */
97#define LCID_SUPPORTED 0x00000002 /* supported locale ids */
98
99
100
101// For FindFirstFileEx
102
103#define FIND_FIRST_EX_CASE_SENSITIVE 0x00000001
104
105/*****************************************************************************
106 * Structures *
107 *****************************************************************************/
108
109 // For FindFirstFileEx
110
111typedef enum _FINDEX_INFO_LEVELS {
112 FindExInfoStandard,
113 FindExInfoMaxInfoLevel
114} FINDEX_INFO_LEVELS;
115
116typedef enum _FINDEX_SEARCH_OPS {
117 FindExSearchNameMatch,
118 FindExSearchLimitToDirectories,
119 FindExSearchLimitToDevices,
120 FindExSearchMaxSearchOp
121} FINDEX_SEARCH_OPS;
122
123 // For Backup funtions
124
125typedef struct _WIN32_STREAM_ID {
126
127 DWORD dwStreamId;
128 DWORD dwStreamAttributes;
129 LARGE_INTEGER Size;
130 DWORD dwStreamNameSize;
131// WCHAR cStreamName[ ] ; /* @@@PH */
132 WCHAR cStreamName[1] ;
133} WIN32_STREAM_ID;
134
135
136//
137// File structures
138//
139
140//typedef struct _OVERLAPPED {
141// DWORD Internal;
142// DWORD InternalHigh;
143// DWORD Offset;
144// DWORD OffsetHigh;
145// HANDLE hEvent;
146//} OVERLAPPED, *LPOVERLAPPED;
147
148//typedef struct _SECURITY_ATTRIBUTES {
149// DWORD nLength;
150// LPVOID lpSecurityDescriptor;
151// BOOL bInheritHandle;
152//} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
153
154//typedef struct _PROCESS_INFORMATION {
155// HANDLE hProcess;
156// HANDLE hThread;
157// DWORD dwProcessId;
158// DWORD dwThreadId;
159//} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
160
161// For Fiber functions
162
163typedef VOID (WINAPI *PFIBER_START_ROUTINE)(
164 LPVOID lpFiberParameter
165 );
166typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
167
168// For Enum CalendarInfo & EnumSystemCodePages see winnls.h
169
170/*
171 * Calendar type constant.
172 */
173typedef DWORD CALTYPE;
174
175/*
176 * Calendar ID.
177 */
178typedef DWORD CALID;
179
180
181/*****************************************************************************
182 * Prototypes *
183 *****************************************************************************/
184
185
186/*****************************************************************************
187 * Name : BOOL WIN32API AreFileApisANSI (VOID)
188 * Purpose : The AreFileApisANSI function determines whether a set of Win32
189 * file functions is using the ANSI or OEM character set code page.
190 * This function is useful for 8-bit console input and output
191 * operations.
192 * Parameters: NONE
193 * Variables :
194 * Result : If the set of Win32 file functions is using the ANSI code page,
195 * the return value is nonzero.
196 * If the set of Win32 file functions is using the OEM code page,
197 * the return value is zero.
198 * Remark :
199 * Status : UNTESTED STUB
200 *
201 * Author : Markus Montkowski [Thu, 1998/02/19 11:46]
202 *****************************************************************************/
203
204BOOL WIN32API AreFileApisANSI (VOID)
205{
206
207 dprintf(("KERNEL32:AreFileApisANSI() not implemented - TRUE\n"
208 ));
209
210 return (TRUE);
211}
212
213/*****************************************************************************
214 * Name : BOOL WIN32API BackupRead(
215 * Purpose : The BackupRead function reads data associated with a specified
216 * file or directory into a buffer. You use this function to back
217 * up a file or directory.
218 * Parameters: HANDLE hFile handle to file or directory
219 * LPBYTE lpBuffer pointer to buffer to read to
220 * DWORD nNumberOfBytesToRead number of bytes to read
221 * LPDWORD lpNumberOfBytesRead pointer to variable to receive
222 * number of bytes read
223 * BOOL bAbort termination type
224 * BOOL bProcessSecurity process security flag
225 * LPVOID *lpContext pointer to pointer to internal
226 * context information
227 * Variables :
228 * Result : 0 on Error Nonzero if OK
229 * Remark : BackupRead processes all of the data pertaining to an opened
230 * object as a series of discrete byte streams. Each stream is
231 * preceded by a 32-bit aligned WIN32_STREAM_ID structure.
232 * Streams must be processed in the same order in which they were
233 * written to the tape. This ordering enables applications to
234 * compare the data backed up against the data on the source device.
235 * The data returned by BackupRead is to be used only as input to
236 * the BackupWrite function. This data is returned as one large data
237 * stream divided into substreams. The substreams are separated
238 * by WIN32_STREAM_ID headers.
239 *
240 * If an error occurs while BackupRead is reading, the calling
241 * process can skip the bad data by calling the BackupSeek function.
242 * Status : UNTESTED STUB
243 *
244 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
245 *****************************************************************************/
246
247BOOL WIN32API BackupRead(
248 HANDLE hFile, // handle to file or directory
249 LPBYTE lpBuffer, // pointer to buffer to read to
250 DWORD nNumberOfBytesToRead, // number of bytes to read
251 LPDWORD lpNumberOfBytesRead, // pointer to variable to receive number of bytes read
252 BOOL bAbort, // termination type
253 BOOL bProcessSecurity, // process security flag
254 LPVOID *lpContext // pointer to pointer to internal context information
255)
256{
257
258 dprintf(("KERNEL32:BackupRead(%08x,%08x,%08x,%08x,%08x,%08x,%08x) not implemented\n",
259 hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead,
260 bAbort, bProcessSecurity, lpContext
261 ));
262
263 return (FALSE);
264}
265/*****************************************************************************
266 * Name : BOOL WIN32API BackupSeek()
267 * Purpose : The BackupSeek function seeks forward in a data stream initially
268 * accessed by using the BackupRead or BackupWrite function.
269 * Parameters: HANDLE hFile handle to open file
270 * DWORD dwLowBytesToSeek low-order 32 bits of number of bytes
271 * DWORD dwHighBytesToSeek high-order 32 bits of number of bytes
272 * LPDWORD lpdwLowByteSeeked pointer to number of bytes function seeks
273 * LPDWORD lpdwHighByteSeeked pointer to number of bytes function seeks
274 * LPVOID *lpContext pointer to internal context information
275 *
276 * Variables :
277 * Result : If the function could seek the requested amount, the function
278 * returns nonzero.
279 * If the function could not seek the requested amount, the function
280 * returns zero.
281 * Remark : Applications use the BackUpSeek function to skip portions of a
282 * data stream that cause errors. This function does not seek across
283 * stream headers. If an application attempts to seek past the end
284 * of a substream, the function fails, the lpdwLowByteSeeked and
285 * lpdwHighByteSeeked parameters indicate the actual number of bytes
286 * the function seeks, and the file position is placed at the start
287 * of the next stream header.
288 * Status : UNTESTED STUB
289 *
290 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
291 *****************************************************************************/
292
293BOOL WIN32API BackupSeek( HANDLE hFile, DWORD dwLowBytesToSeek,
294 DWORD dwHighBytesToSeek,
295 LPDWORD lpdwLowByteSeeked,
296 LPDWORD lpdwHighByteSeeked,LPVOID *lpContext)
297{
298
299 dprintf(("KERNEL32:BackupSeek(%08x,%08x,%08x,%08x,%08x,08x) not implemented\n",
300 hFile, dwLowBytesToSeek,dwHighBytesToSeek,
301 lpdwLowByteSeeked, lpdwHighByteSeeked, lpContext));
302
303 return (FALSE);
304}
305
306/*****************************************************************************
307 * Name : BOOL WIN32API BackupWrite
308 * Purpose : The BackupWrite function writes a stream of data from a buffer to
309 * a specified file or directory. The data must be divided into
310 * substreams separated by WIN32_STREAM_ID structures. You use this
311 * function to restore a file or directory that has been backed up.
312 * Parameters: HANDLE hFile handle to file or directory
313 * LPBYTE lpBuffer pointer to buffer containing data
314 * to write
315 * DWORD nNumberOfBytesToWrite number of bytes to write
316 * LPDWORD lpNumberOfBytesWritten pointer to variable to receive
317 * number of bytes written
318 * BOOL bAbort termination type
319 * BOOL bProcessSecurity process security
320 * LPVOID *lpContext pointer to pointer to internal
321 * context information
322 *
323 * Variables :
324 * Result : If the function succeeds, the return value is nonzero.
325 * If the function fails, the return value is zero,
326 * indicating that an I/O error occurred.
327 * To get extended error information, call GetLastError.
328 * Remark :
329 * Status : UNTESTED STUB
330 *
331 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
332 *****************************************************************************/
333
334BOOL WIN32API BackupWrite( HANDLE hFile, LPBYTE lpBuffer,
335 DWORD nNumberOfBytesToWrite,
336 LPDWORD lpNumberOfBytesWritten,
337 BOOL bAbort, BOOL bProcessSecurity,
338 LPVOID *lpContext)
339{
340
341 dprintf(("KERNEL32:BackupWrite(%08x,%0x8,%08x,%08x,%08x,%08x,%08x) not implemented\n",
342 hFile, lpBuffer, nNumberOfBytesToWrite,
343 lpNumberOfBytesWritten, bAbort, bProcessSecurity, lpContext));
344
345 return (FALSE);
346}
347
348/*****************************************************************************
349 * Name : HANDLE WIN32API BeginUpdateResourceA
350 * Purpose : The BeginUpdateResource function returns a handle that can be
351 * used by the UpdateResource function to add, delete, or replace
352 * resources in an executable file.
353 * Parameters: LPCSTR pFileName pointer to file in which to
354 * update resources
355 * BOOL bDeleteExistingResources deletion option
356 *
357 * Variables :
358 * Result : If the function succeeds, the return value is a handle that can
359 * be used by the UpdateResource and EndUpdateResource functions.
360 * The return value is NULL if the specified file is not an
361 * executable file, the executable file is already loaded,
362 * the file does not exist, or the file cannot be opened for writing.
363 * To get extended error information, call GetLastError
364 * Remark :
365 * Status : UNTESTED STUB
366 *
367 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
368 *****************************************************************************/
369
370HANDLE WIN32API BeginUpdateResourceA( LPCSTR pFileName,
371 BOOL bDeleteExistingResources)
372{
373
374 dprintf(("KERNEL32: BeginUpdateResource(%08x,%08x) not implemented\n",
375 pFileName, bDeleteExistingResources
376 ));
377
378 return (NULL);
379}
380
381/*****************************************************************************
382 * Name : HANDLE WIN32API BeginUpdateResourceW
383 * Purpose : The BeginUpdateResource function returns a handle that can be
384 * used by the UpdateResource function to add, delete, or replace
385 * resources in an executable file.
386 * Parameters: LPCWSTR pFileName pointer to file in which to
387 * update resources
388 * BOOL bDeleteExistingResources deletion option
389 *
390 * Variables :
391 * Result : If the function succeeds, the return value is a handle that can
392 * be used by the UpdateResource and EndUpdateResource functions.
393 * The return value is NULL if the specified file is not an
394 * executable file, the executable file is already loaded,
395 * the file does not exist, or the file cannot be opened for writing.
396 * To get extended error information, call GetLastError
397 * Remark :
398 * Status : UNTESTED STUB
399 *
400 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
401 *****************************************************************************/
402
403HANDLE WIN32API BeginUpdateResourceW( LPCWSTR pFileName,
404 BOOL bDeleteExistingResources)
405{
406
407 dprintf(("KERNEL32: BeginUpdateResource(%08x,%08x) not implemented\n",
408 pFileName, bDeleteExistingResources
409 ));
410
411 return (NULL);
412}
413
414/*****************************************************************************
415 * Name : BOOL WIN32AOI CallNamedPipeA
416 * Purpose : The CallNamedPipe function connects to a message-type pipe
417 * (and waits if an instance of the pipe is not available),
418 * writes to and reads from the pipe, and then closes the pipe.
419 * Parameters: LPCSTR lpNamedPipeName pointer to pipe name
420 * LPVOID lpInBuffer pointer to write buffer
421 * DWORD nInBufferSize size, in bytes, of write buffer
422 * LPVOID lpOutBuffer pointer to read buffer
423 * DWORD nOutBufferSize size, in bytes, of read buffer
424 * LPDWORD lpBytesRead pointer to number of bytes read
425 * DWORD nTimeOut time-out time, in milliseconds
426 * Variables :
427 * Result : If the function succeeds, the return value is nonzero.
428 * If the function fails, the return value is zero.
429 * To get extended error information, call GetLastError.
430 * Remark : Calling CallNamedPipe is equivalent to calling the CreateFile
431 * (or WaitNamedPipe, if CreateFile cannot open the pipe immediately),
432 * TransactNamedPipe, and CloseHandle functions. CreateFile is called
433 * with an access flag of GENERIC_READ | GENERIC_WRITE, an inherit
434 * handle flag of FALSE, and a share mode of zero (indicating no
435 * sharing of this pipe instance).
436 * If the message written to the pipe by the server process is
437 * longer than nOutBufferSize, CallNamedPipe returns FALSE, and
438 * GetLastError returns ERROR_MORE_DATA. The remainder of the
439 * message is discarded, because CallNamedPipe closes the handle
440 * to the pipe before returning.
441 *
442 * CallNamedPipe fails if the pipe is a byte-type pipe.
443 * Status : UNTESTED STUB
444 *
445 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
446 *****************************************************************************/
447
448BOOL WIN32API CallNamedPipeA( LPCSTR lpNamedPipeName,
449 LPVOID lpInBuffer, DWORD nInBufferSize,
450 LPVOID lpOutBuffer, DWORD nOutBufferSize,
451 LPDWORD lpBytesRead, DWORD nTimeOut)
452{
453
454 dprintf(("KERNEL32: CallNamedPipeA(%08x,%08x,%08x,%08x,%08x,%08x) not implemented\n",
455 lpNamedPipeName, lpInBuffer, nInBufferSize,
456 lpOutBuffer, nOutBufferSize, lpBytesRead, nTimeOut
457 ));
458
459 return (FALSE);
460}
461
462/*****************************************************************************
463 * Name : BOOL WIN32AOI CallNamedPipeA
464 * Purpose : The CallNamedPipe function connects to a message-type pipe
465 * (and waits if an instance of the pipe is not available),
466 * writes to and reads from the pipe, and then closes the pipe.
467 * Parameters: LPCWSTR lpNamedPipeName pointer to pipe name
468 * LPVOID lpInBuffer pointer to write buffer
469 * DWORD nInBufferSize size, in bytes, of write buffer
470 * LPVOID lpOutBuffer pointer to read buffer
471 * DWORD nOutBufferSize size, in bytes, of read buffer
472 * LPDWORD lpBytesRead pointer to number of bytes read
473 * DWORD nTimeOut time-out time, in milliseconds
474 * Variables :
475 * Result : If the function succeeds, the return value is nonzero.
476 * If the function fails, the return value is zero.
477 * To get extended error information, call GetLastError.
478 * Remark : Calling CallNamedPipe is equivalent to calling the CreateFile
479 * (or WaitNamedPipe, if CreateFile cannot open the pipe immediately),
480 * TransactNamedPipe, and CloseHandle functions. CreateFile is called
481 * with an access flag of GENERIC_READ | GENERIC_WRITE, an inherit
482 * handle flag of FALSE, and a share mode of zero (indicating no
483 * sharing of this pipe instance).
484 * If the message written to the pipe by the server process is
485 * longer than nOutBufferSize, CallNamedPipe returns FALSE, and
486 * GetLastError returns ERROR_MORE_DATA. The remainder of the
487 * message is discarded, because CallNamedPipe closes the handle
488 * to the pipe before returning.
489 *
490 * CallNamedPipe fails if the pipe is a byte-type pipe.
491 * Status : UNTESTED STUB
492 *
493 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
494 *****************************************************************************/
495
496BOOL WIN32API CallNamedPipeW( LPCWSTR lpNamedPipeName,
497 LPVOID lpInBuffer, DWORD nInBufferSize,
498 LPVOID lpOutBuffer, DWORD nOutBufferSize,
499 LPDWORD lpBytesRead, DWORD nTimeOut)
500{
501
502 dprintf(("KERNEL32: CallNamedPipeA(%08x,%08x,%08x,%08x,%08x,%08x) not implemented\n",
503 lpNamedPipeName, lpInBuffer, nInBufferSize,
504 lpOutBuffer, nOutBufferSize, lpBytesRead, nTimeOut
505 ));
506
507 return (FALSE);
508}
509/*****************************************************************************
510 * Name : BOOL WIN32API CancelIo
511 * Purpose : The CancelIO function cancels all pending input and output
512 * (I/O) operations that were issued by the calling thread for
513 * the specified file handle. The function does not cancel
514 * I/O operations issued for the file handle by other threads.
515 * Parameters: HANDLE hFile file handle for which to cancel I/O
516 * Variables :
517 * Result : If the function succeeds, the return value is nonzero All pending
518 * I/O operations issued by the calling thread for the file handle
519 * were successfully canceled.
520 * If the function fails, the return value is zero.
521 * To get extended error information, call GetLastError.
522 * Remark : If there are any I/O operations in progress for the specified
523 * file handle, and they were issued by the calling thread, the
524 * CancelIO function cancels them.
525 * Note that the I/O operations must have been issued as
526 * overlapped I/O. If they were not, the I/O operations would not
527 * have returned to allow the thread to call the CancelIO function.
528 * Calling the CancelIO function with a file handle that was not
529 * opened with FILE_FLAG_OVERLAPPED does nothing.
530 * All I/O operations that are canceled will complete with the
531 * error ERROR_OPERATION_ABORTED. All completion notifications
532 * for the I/O operations will occur normally.
533 * Status : UNTESTED STUB
534 *
535 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
536 *****************************************************************************/
537
538BOOL WIN32API CancelIo(HANDLE hFile)
539{
540
541 dprintf(("KERNEL32:CancelIo(%08x) not implemented\n",
542 hFile
543 ));
544
545 return (FALSE);
546}
547
548/*****************************************************************************
549 * Name : BOOL CancelWaitableTimer
550 * Purpose : The CancelWaitableTimer function sets the specified "waitable"
551 * timer to the inactive state.
552 * Parameters: HANDLE hTimer handle to a timer object
553 * Variables :
554 * Result : If the function succeeds, the return value is nonzero.
555 * If the function fails, the return value is zero.
556 * To get extended error information, call GetLastError.
557 * Remark : The CancelWaitableTimer function does not change the signaled
558 * state of the timer. It stops the timer before it can be set to
559 * the signaled state. Therefore, threads performing a wait
560 * operation on the timer remain waiting until they time out or
561 * the timer is reactivated and its state is set to signaled.
562 *
563 * To reactivate the timer, call the SetWaitableTimer function.
564 * Status : UNTESTED STUB
565 *
566 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
567 *****************************************************************************/
568
569BOOL WIN32API CancelWaitableTimer(HANDLE hTimer)
570{
571
572 dprintf(("KERNEL32:CancelWaitableTimer(%08x) not implemented\n",
573 hTimer
574 ));
575
576 return (FALSE);
577}
578
579/*****************************************************************************
580 * Name : BOOL WIN32API ConnectNamedPipe
581 * Purpose : The ConnectNamedPipe function enables a named pipe server process
582 * to wait for a client process to connect to an instance of a
583 * named pipe. A client process connects by calling either the
584 * CreateFile or CallNamedPipe function.
585 * Parameters: HANDLE hNamedPipe handle to named pipe to connect
586 * LPOVERLAPPED lpOverlapped pointer to overlapped structure
587 * Variables :
588 * Result : If the function succeeds, the return value is nonzero.
589 * If the function fails, the return value is zero.
590 * To get extended error information, call GetLastError.
591 * Remark :
592 * Status : UNTESTED STUB
593 *
594 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
595 *****************************************************************************/
596
597BOOL WIN32API ConnectNamedPipe(HANDLE hNamedPipe, LPOVERLAPPED lpOverlapped)
598{
599
600 dprintf(("KERNEL32: ConnectNamedPipe(%08x,%08x) not implemented\n",
601 hNamedPipe, lpOverlapped
602 ));
603
604 return (FALSE);
605}
606
607
608/*****************************************************************************
609 * Name : BOOL WIN32API ContinueDebugEvent
610 * Purpose : The ContinueDebugEvent function enables a debugger to continue
611 * a thread that previously reported a debugging event.
612 * Parameters: DWORD dwProcessId process to continue
613 DWORD dwThreadId thread to continue
614 DWORD dwContinueStatus continuation status
615 * Variables :
616 * Result : If the function succeeds, the return value is nonzero.
617 * If the function fails, the return value is zero.
618 * To get extended error information, call GetLastError.
619 * Remark : Only the thread that created dwProcessId with the CreateProcess
620 * function can call ContinueDebugEvent.
621 * After the ContinueDebugEvent function succeeds, the specified
622 * thread continues. Depending on the debugging event previously
623 * reported by the thread, different actions occur. If the continued
624 * thread previously reported an EXIT_THREAD_DEBUG_EVENT
625 * debugging event, ContinueDebugEvent closes the handle the
626 * debugger has to the thread. If the continued thread previously
627 * reported an EXIT_PROCESS_DEBUG_EVENT debugging event,
628 * ContinueDebugEvent closes the handles the debugger has to the
629 * process and to the thread.
630 * Status : UNTESTED STUB
631 *
632 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
633 *****************************************************************************/
634
635BOOL WIN32API ContinueDebugEvent( DWORD dwProcessId, DWORD dwThreadId,
636 DWORD dwContinueStatus)
637{
638
639 dprintf(("KERNEL32: ContinueDebugEvent(%08x,%08x,%08x)not implemented\n",
640 dwProcessId, dwThreadId, dwContinueStatus
641 ));
642
643 return (FALSE);
644}
645
646/*****************************************************************************
647 * Name : LCID WIN32API ConvertDefaultLocale
648 * Purpose : The ConvertDefaultLocale function converts a special default
649 * locale value to an actual locale identifier.
650 * Parameters: LCID Locale special default locale value to be converted
651 * Value Description
652 * LOCALE_SYSTEM_DEFAULT The system's default locale.
653 * LOCALE_USER_DEFAULT The current user's default locale.
654 * zero The language-neutral default locale.
655 * This is equivalent to the locale identifier
656 * created by calling the MAKELCID macro
657 * with a language identifier consisting
658 * of the LANG_NEUTRAL and SUBLANG_NEUTRAL
659 * values.
660 * Any sublanguage neutral default locale
661 * A locale identifier constructed by
662 * calling MAKELCID with a language
663 * identifier consisting of a primary
664 * language value, such as LANG_ENGLISH,
665 * and the SUBLANG_NEUTRAL value.
666 *
667 * Variables :
668 * Result : If the function succeeds, the return value is the appropriate
669 * actual locale identifier.
670 * If the function fails, the return value is the Locale parameter.
671 * The function fails when Locale is not one of the special
672 * default locale values listed above.
673 * Remark : A call to ConvertDefaultLocale(LOCALE_SYSTEM_DEFAULT)
674 * is equivalent to a call to GetSystemDefaultLCID.
675 * A call to ConvertDefaultLocale(LOCALE_USER_DEFAULT)
676 * is equivalent to a call to GetUserDefaultLCID.
677 * Status : UNTESTED STUB
678 *
679 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
680 *****************************************************************************/
681
682LCID WIN32API ConvertDefaultLocale(LCID Locale)
683{
684
685 dprintf(("KERNEL32: ConvertDefaultLocale(%08x) partly implmented - returns input\n",
686 Locale
687 ));
688
689 return (Locale);
690}
691
692/*****************************************************************************
693 * Name : BOOL WIN32API CopyFileExA
694 * Purpose : The CopyFileExA function copies an existing file to a new file.
695 * This function preserves extended attributes, OLE structured
696 * storage, NTFS alternate data streams, and file attributes.
697 * Security attributes for the existing file are not copied to
698 * the new file.
699 * Parameters: LPCSTR lpExistingFileName pointer to name of an existing file
700 * LPCSTR lpNewFileName pointer to filename to copy to
701 * LPPROGRESS_ROUTINE lpProgressRoutine pointer to the callback function
702 * LPVOID lpData to be passed to the callback function
703 * LPBOOL pbCancel flag that can be used to cancel the operation
704 * DWORD dwCopyFlags flags that specify how the file is copied
705 * Variables :
706 * Result : f the function succeeds, the return value is nonzero.
707 * If the function fails, the return value is zero.
708 * To get extended error information call GetLastError.
709 * Remark :
710 * Status : UNTESTED STUB
711 *
712 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
713 *****************************************************************************/
714
715BOOL WIN32API CopyFileExA( LPCSTR lpExistingFileName,
716 LPCSTR lpNewFileName,
717 LPPROGRESS_ROUTINE lpProgressRoutine,
718 LPVOID lpData,
719 LPBOOL pbCancel,
720 DWORD dwCopyFlags)
721{
722
723 dprintf(("KERNEL32: CopyFileExA(%08x,%08x,%08x,%08x,%08x,%08x) not implemented\n",
724 lpExistingFileName,
725 lpNewFileName,
726 lpProgressRoutine,
727 lpData,
728 pbCancel,
729 dwCopyFlags
730 ));
731
732 return (FALSE);
733}
734
735
736/*****************************************************************************
737 * Name : BOOL WIN32API CopyFileExW
738 * Purpose : The CopyFileExW function copies an existing file to a new file.
739 * This function preserves extended attributes, OLE structured
740 * storage, NTFS alternate data streams, and file attributes.
741 * Security attributes for the existing file are not copied to
742 * the new file.
743 * Parameters: LPCWSTR lpExistingFileName pointer to name of an existing file
744 * LPCWSTR lpNewFileName pointer to filename to copy to
745 * LPPROGRESS_ROUTINE lpProgressRoutine pointer to the callback function
746 * LPVOID lpData to be passed to the callback function
747 * LPBOOL pbCancel flag that can be used to cancel the operation
748 * DWORD dwCopyFlags flags that specify how the file is copied
749 * Variables :
750 * Result : f the function succeeds, the return value is nonzero.
751 * If the function fails, the return value is zero.
752 * To get extended error information call GetLastError.
753 * Remark :
754 * Status : UNTESTED STUB
755 *
756 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
757 *****************************************************************************/
758
759BOOL WIN32API CopyFileExW( LPCWSTR lpExistingFileName,
760 LPCWSTR lpNewFileName,
761 LPPROGRESS_ROUTINE lpProgressRoutine,
762 LPVOID lpData,
763 LPBOOL pbCancel,
764 DWORD dwCopyFlags)
765{
766
767 dprintf(("KERNEL32: CopyFileExW(%08x,%08x,%08x,%08x,%08x,%08x) not implemented\n",
768 lpExistingFileName,
769 lpNewFileName,
770 lpProgressRoutine,
771 lpData,
772 pbCancel,
773 dwCopyFlags
774 ));
775
776 return (FALSE);
777}
778
779/*****************************************************************************
780 * Name : BOOL WIN32API CreateDirectoryExA
781 * Purpose : The CreateDirectoryExA function creates a new directory with a
782 * specified path that retains the attributes of a specified
783 * template directory. If the underlying file system supports
784 * security on files and directories, the function applies a
785 * specified security descriptor to the new directory.
786 * The new directory retains the other attributes of the specified
787 * template directory. Note that CreateDirectoryEx has a template
788 * parameter, while CreateDirectory does not.
789 * Parameters: LPCSTR lpTemplateDirectory pointer to path string of template
790 * directory
791 * LPCSTR lpNewDirectory pointer to path string of directory
792 * to create
793 * LPSECURITY_ATTRIBUTES lpSecurityAttributes pointer to security
794 * descriptor
795 *
796 * Variables :
797 * Result : If the function succeeds, the return value is nonzero.
798 * If the function fails, the return value is zero.
799 * To get extended error information, call GetLastError.
800 * Remark :
801 * Status : UNTESTED STUB
802 *
803 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
804 *****************************************************************************/
805
806BOOL WIN32API CreateDirectoryExA( LPCSTR lpTemplateDirectory,
807 LPCSTR lpNewDirectory,
808 LPSECURITY_ATTRIBUTES lpSecurityAttributes)
809{
810
811 dprintf(("KERNEL32:CreateDirectoryExA(%08x,%08x,%08x) not implemented\n",
812 lpTemplateDirectory,lpNewDirectory,lpSecurityAttributes
813 ));
814
815 return (FALSE);
816}
817
818/*****************************************************************************
819 * Name : BOOL WIN32API CreateDirectoryExW
820 * Purpose : The CreateDirectoryExW function creates a new directory with a
821 * specified path that retains the attributes of a specified
822 * template directory. If the underlying file system supports
823 * security on files and directories, the function applies a
824 * specified security descriptor to the new directory.
825 * The new directory retains the other attributes of the specified
826 * template directory. Note that CreateDirectoryEx has a template
827 * parameter, while CreateDirectory does not.
828 * Parameters: LPCWSTR lpTemplateDirectory pointer to path string of template
829 * directory
830 * LPCWSTR lpNewDirectory pointer to path string of directory
831 * to create
832 * LPSECURITY_ATTRIBUTES lpSecurityAttributes pointer to security
833 * descriptor
834 *
835 * Variables :
836 * Result : If the function succeeds, the return value is nonzero.
837 * If the function fails, the return value is zero.
838 * To get extended error information, call GetLastError.
839 * Remark :
840 * Status : UNTESTED STUB
841 *
842 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
843 *****************************************************************************/
844
845BOOL WIN32API CreateDirectoryExW( LPCWSTR lpTemplateDirectory,
846 LPCWSTR lpNewDirectory,
847 LPSECURITY_ATTRIBUTES lpSecurityAttributes)
848{
849
850 dprintf(("KERNEL32:CreateDirectoryExW(%08x,%08x,%08x) not implemented\n",
851 lpTemplateDirectory,lpNewDirectory,lpSecurityAttributes
852 ));
853
854 return (FALSE);
855}
856
857/*****************************************************************************
858 * Name : LPVOID WIN32API CreateFiber
859 * Purpose : The CreateFiber function allocates a fiber object, assigns it a
860 * stack, and sets up execution to begin at the specified
861 * start address, typically the fiber function.
862 * This function does not schedule the fiber.
863 * Parameters: DWORD dwStackSize initial thread stack size, in bytes
864 * LPFIBER_START_ROUTINE lpStartAddress pointer to fiber function
865 * LPVOID lpParameter argument for new fiber
866 * Variables :
867 * Result : If the function succeeds, the return value is the address of
868 * the fiber.
869 * If the function fails, the return value is NULL.
870 * Remark : Before a thread can schedule a fiber using the SwitchToFiber
871 * function, it must call the ConvertThreadToFiber function so there
872 * is a fiber associated with the thread.
873 * The fiber function is of type FIBER_START_ROUTINE.
874 * It accepts a single value of type PVOID (fiber data) and does not
875 * return a value. The prototype for this function is as follows:
876 *
877 * VOID WINAPI FiberFunc( PVOID lpParameter );
878 *
879 * Status : UNTESTED STUB
880 *
881 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
882 *****************************************************************************/
883
884LPVOID WIN32API CreateFiber( DWORD dwStackSize,
885 LPFIBER_START_ROUTINE lpStartAddress,
886 LPVOID lpParameter)
887{
888
889 dprintf(("KERNEL32:CreateFiber(%08x,%08x,%08x) not implemented\n",
890 dwStackSize, lpStartAddress,lpParameter
891 ));
892
893 return (NULL);
894}
895
896
897/*****************************************************************************
898 * Name : HANDLE WIN32API CreateIoCompletionPort
899 * Purpose : The CreateIoCompletionPort function can associate an instance of
900 * an opened file with a newly created or an existing input/output
901 * completion port; or it can create an input/output completion port
902 * without associating it with a file.
903 * Associating an instance of an opened file with an input/output
904 * completion port lets an application receive notification of the
905 * completion of asynchronous input/output operations involving that
906 * file.
907 * Parameters: HANDLE FileHandle file handle to associate with I/O
908 * completion port. Must be created
909 * with flag FILE_FLAG_OVERLAPPED !
910 * HANDLE ExistingCompletionPort optional handle to existing
911 * I/O completion port
912 * DWORD CompletionKey per-file completion key for
913 * I/O completion packets
914 * DWORD NumberOfConcurrentThreads number of threads allowed to
915 * execute concurrently
916 * Variables :
917 * Result : If the function succeeds, the return value is the handle to the
918 * I/O completion port that is associated with the specified file.
919 * This return value is not NULL.
920 * If the function fails, the return value is NULL.
921 * Remark : The Win32 I/O system can be instructed to send I/O completion
922 * notification packets to input/output completion ports, where they
923 * are queued up. The CreateIoCompletionPort function provides a
924 * mechanism for this.
925 * When you perform an input/output operation with a file handle
926 * that has an associated input/output completion port, the
927 * I/O system sends a completion notification packet to the
928 * completion port when the I/O operation completes.
929 * The I/O completion port places the completion packet in a
930 * first-in-first-out queue.
931 * Use the GetQueuedCompletionStatus function to retrieve these
932 * queued I/O completion packets.
933 * Threads in the same process can use the PostQueuedCompletionStatus
934 * function to place I/O completion notification packets in a
935 * completion port's queue. This allows you to use the port to
936 * receive communications from other threads of the process,
937 * in addition to receiving I/O completion notification packets
938 * from the Win32 I/O system.
939 * Status : UNTESTED STUB
940 *
941 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
942 *****************************************************************************/
943
944HANDLE WIN32API CreateIoCompletionPort( HANDLE FileHandle,
945 HANDLE ExistingCompletionPort,
946 DWORD CompletionKey,
947 DWORD NumberOfConcurrentThreads)
948{
949
950 dprintf(("KERNEL32: CreateIoCompletionPort(%08x,%08x,%08x,%08x) not implemented\n",
951 FileHandle, ExistingCompletionPort, CompletionKey,
952 NumberOfConcurrentThreads
953 ));
954
955 return (NULL);
956}
957/*****************************************************************************
958 * Name : HANDLE WIN32API CreateMailslotA
959 * Purpose : The CreateMailslot function creates a mailslot with the specified
960 * name and returns a handle that a mailslot server can use to
961 * perform operations on the mailslot. The mailslot is local to the
962 * computer that creates it. An error occurs if a mailslot with
963 * the specified name already exists.
964 * Parameters: LPCSTR lpName pointer to string for mailslot name
965 * DWORD nMaxMessageSize maximum message size
966 * DWORD lReadTimeout milliseconds before read time-out
967 * LPSECURITY_ATTRIBUTES lpSecurityAttributes pointer to security structure
968 * Variables :
969 * Result : If the function succeeds, the return value is a handle to
970 * the mailslot, for use in server mailslot operations.
971 * If the function fails, the return value is INVALID_HANDLE_VALUE.
972 * Remark :
973 * Status : UNTESTED STUB
974 *
975 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
976 *****************************************************************************/
977
978HANDLE WIN32API CreateMailslotA(LPCSTR lpName, DWORD nMaxMessageSize,
979 DWORD lReadTimeout,
980 LPSECURITY_ATTRIBUTES lpSecurityAttributes)
981{
982
983 dprintf(("KERNEL32: CreateMailslotA(%08x,%08x,%08x,%08x) not implemented - INVALID_HANDLE_VALUE\n",
984 lpName, nMaxMessageSize, lReadTimeout, lpSecurityAttributes
985 ));
986
987 return (INVALID_HANDLE_VALUE);
988}
989
990/*****************************************************************************
991 * Name : HANDLE WIN32API CreateMailslotW
992 * Purpose : The CreateMailslot function creates a mailslot with the specified
993 * name and returns a handle that a mailslot server can use to
994 * perform operations on the mailslot. The mailslot is local to the
995 * computer that creates it. An error occurs if a mailslot with
996 * the specified name already exists.
997 * Parameters: LPCWSTR lpName pointer to string for mailslot name
998 * DWORD nMaxMessageSize maximum message size
999 * DWORD lReadTimeout milliseconds before read time-out
1000 * LPSECURITY_ATTRIBUTES lpSecurityAttributes pointer to security
1001 * structure
1002 * Variables :
1003 * Result : If the function succeeds, the return value is a handle to
1004 * the mailslot, for use in server mailslot operations.
1005 * If the function fails, the return value is INVALID_HANDLE_VALUE.
1006 * Remark :
1007 * Status : UNTESTED STUB
1008 *
1009 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1010 *****************************************************************************/
1011
1012HANDLE WIN32API CreateMailslotW(LPCWSTR lpName, DWORD nMaxMessageSize,
1013 DWORD lReadTimeout,
1014 LPSECURITY_ATTRIBUTES lpSecurityAttributes)
1015{
1016
1017 dprintf(("KERNEL32: CreateMailslotW(%08x,%08x,%08x,%08x) not implemented - INVALID_HANDLE_VALUE\n",
1018 lpName, nMaxMessageSize, lReadTimeout, lpSecurityAttributes
1019 ));
1020
1021 return (INVALID_HANDLE_VALUE);
1022}
1023
1024/*****************************************************************************
1025 * Name : HANDLE WIN32API CreateRemoteThread
1026 * Purpose : The CreateRemoteThread function creates a thread that runs in
1027 * the address space of another process.
1028 * Parameters: HANDLE hProcess handle to process to create thread in
1029 * LPSECURITY_ATTRIBUTES lpThreadAttributes pointer to thread
1030 * security attributes
1031 * DWORD dwStackSize initial thread stack size, in bytes
1032 * LPTHREAD_START_ROUTINE lpStartAddress pointer to thread function
1033 * LPVOID lpParameter pointer to argument for new thread
1034 * DWORD dwCreationFlags creation flags
1035 * LPDWORD lpThreadId pointer to returned thread identifier
1036 * Variables :
1037 * Result : If the function succeeds, the return value is a handle to
1038 * the new thread.
1039 * If the function fails, the return value is NULL.
1040 * Remark :
1041 * Status : UNTESTED STUB
1042 *
1043 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1044 *****************************************************************************/
1045
1046HANDLE WIN32API CreateRemoteThread( HANDLE hProcess,
1047 LPSECURITY_ATTRIBUTES lpThreadAttributes,
1048 DWORD dwStackSize,
1049 LPTHREAD_START_ROUTINE lpStartAddress,
1050 LPVOID lpParameter,DWORD dwCreationFlags,
1051 LPDWORD lpThreadId )
1052{
1053
1054 dprintf(("KERNEL32: CreateRemoteThread(%08x,%08x,%08x,%08x,%08x,%08x,%08x) not implemented\n",
1055 hProcess, lpThreadAttributes, dwStackSize, lpStartAddress,
1056 lpParameter, dwCreationFlags, lpThreadId
1057 ));
1058
1059 return (NULL);
1060}
1061/*****************************************************************************
1062 * Name : DWORD WIN32API CreateTapePartition
1063 * Purpose : The CreateTapePartition function reformats a tape.
1064 * Parameters: HANDLE hDevice handle to open device
1065 * DWORD dwPartitionMethode type of new partition
1066 * DWORD dwCount number of new partitions to create
1067 * DWORD dwSize size of new partition, in megabytes
1068 * Variables :
1069 * Result : If the function succeeds, the return value is NO_ERROR.
1070 * If the function fails, it may return one of the following
1071 * error codes:
1072 * Error Description
1073 * ERROR_BEGINNING_OF_MEDIA An attempt to access data before
1074 * the beginning-of-medium marker failed.
1075 * ERROR_BUS_RESET A reset condition was detected on the bus.
1076 * ERROR_END_OF_MEDIA The end-of-tape marker was reached
1077 * during an operation.
1078 * ERROR_FILEMARK_DETECTED A filemark was reached during an operation.
1079 * ERROR_SETMARK_DETECTED A setmark was reached during an operation.
1080 * ERROR_NO_DATA_DETECTED The end-of-data marker was reached
1081 * during an operation.
1082 * ERROR_PARTITION_FAILURE The tape could not be partitioned.
1083 * ERROR_INVALID_BLOCK_LENGTH The block size is incorrect on a
1084 * new tape in a multivolume partition.
1085 * ERROR_DEVICE_NOT_PARTITIONED The partition information could not
1086 * be found when a tape was being loaded.
1087 * ERROR_MEDIA_CHANGED The tape that was in the drive has
1088 * been replaced or removed.
1089 * ERROR_NO_MEDIA_IN_DRIVE There is no media in the drive.
1090 * ERROR_NOT_SUPPORTED The tape driver does not support a
1091 * requested function.
1092 * ERROR_UNABLE_TO_LOCK_MEDIA An attempt to lock the ejection
1093 * mechanism failed.
1094 * ERROR_UNABLE_TO_UNLOAD_MEDIA An attempt to unload the tape failed.
1095 * ERROR_WRITE_PROTECT The media is write protected.
1096 * Remark : Creating partitions reformats the tape. All previous information
1097 * recorded on the tape is destroyed.
1098 * Errorcodes are defined in winerror.h
1099 * Status : UNTESTED STUB
1100 *
1101 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1102 *****************************************************************************/
1103
1104DWORD WIN32API CreateTapePartition( HANDLE hDevice, DWORD dwPartitionMethod,
1105 DWORD dwCount, DWORD dwSize)
1106{
1107
1108 dprintf(("KERNEL32: CreateTapePartition(%08x,%08x,%08x,%08x) not implemented - ERROR_NOT_SUPPORTED\n",
1109 hDevice, dwPartitionMethod, dwCount, dwSize
1110 ));
1111
1112 return (ERROR_NOT_SUPPORTED);
1113}
1114/*****************************************************************************
1115 * Name : HANDLE WIN23API CreateWaitableTimerA
1116 * Purpose : The CreateWaitableTimerA function creates a "waitable" timer object.
1117 * Parameters: LPSECURITY_ATTRIBUTES lpTimerAttributes pointer to security attributes
1118 * BOOL bManualReset flag for manual reset state
1119 * LPCTSTR lpTimerName pointer to timer object name
1120 * Variables :
1121 * Result : If the function succeeds, the return value is a handle to the
1122 * timer object. If the named timer object exists before the
1123 * function call, GetLastError returns ERROR_ALREADY_EXISTS.
1124 * Otherwise, GetLastError returns zero.
1125 * If the function fails, the return value is NULL
1126 * Remark :
1127 * Status : UNTESTED STUB
1128 *
1129 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1130 *****************************************************************************/
1131
1132HANDLE WIN32API CreateWaitableTimerA( LPSECURITY_ATTRIBUTES lpTimerAttributes,
1133 BOOL bManualReset, LPCSTR lpTimerName)
1134{
1135
1136 dprintf(("KERNEL32: CreateWaitableTimer(%08x,%08x,%08x) not implemented\n",
1137 lpTimerAttributes, bManualReset, lpTimerName
1138 ));
1139
1140 return (NULL);
1141}
1142
1143/*****************************************************************************
1144 * Name : HANDLE WIN23API CreateWaitableTimerW
1145 * Purpose : The CreateWaitableTimerW function creates a "waitable" timer object.
1146 * Parameters: LPSECURITY_ATTRIBUTES lpTimerAttributes pointer to security attributes
1147 * BOOL bManualReset flag for manual reset state
1148 * LPCTSTR lpTimerName pointer to timer object name
1149 * Variables :
1150 * Result : If the function succeeds, the return value is a handle to the
1151 * timer object. If the named timer object exists before the
1152 * function call, GetLastError returns ERROR_ALREADY_EXISTS.
1153 * Otherwise, GetLastError returns zero.
1154 * If the function fails, the return value is NULL
1155 * Remark :
1156 * Status : UNTESTED STUB
1157 *
1158 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1159 *****************************************************************************/
1160
1161HANDLE WIN32API CreateWaitableTimerW( LPSECURITY_ATTRIBUTES lpTimerAttributes,
1162 BOOL bManualReset, LPCWSTR lpTimerName)
1163{
1164
1165 dprintf(("KERNEL32: CreateWaitableTimer(%08x,%08x,%08x) not implemented\n",
1166 lpTimerAttributes, bManualReset, lpTimerName
1167 ));
1168
1169 return (NULL);
1170}
1171
1172/*****************************************************************************
1173 * Name : BOOL WIN32API DebugActiveProcess
1174 * Purpose : The DebugActiveProcess function allows a debugger to attach to
1175 * an active process and then debug it.
1176 * Parameters: DWORD dwProcessId process to be debugged
1177 * Variables :
1178 * Result : If the function succeeds, the return value is nonzero.
1179 * If the function fails, the return value is zero
1180 * Remark :
1181 * Status : UNTESTED STUB
1182 *
1183 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1184 *****************************************************************************/
1185
1186BOOL WIN32API DebugActiveProcess(DWORD dwProcessId)
1187{
1188
1189 dprintf(("KERNEL32:DebugActiveProcess(%08x) not implemented\n",
1190 dwProcessId
1191 ));
1192
1193 return (FALSE);
1194}
1195
1196/*****************************************************************************
1197 * Name : BOOL WIN32API DefineDosDeviceA
1198 * Purpose : The DefineDosDeviceA function lets an application define,
1199 * redefine, or delete MS-DOS device names.
1200 * MS-DOS device names are stored as symbolic links in the object
1201 * name space in 32-bit versions of Windows. The code that converts
1202 * an MS-DOS path into a corresponding path in 32-bit versions of
1203 * Windows uses these symbolic links to map MS-DOS devices and drive
1204 * letters. The DefineDosDevice function provides a mechanism
1205 * whereby a Win32-based application can modify the symbolic links
1206 * used to implement the MS-DOS device name space.
1207 * Parameters: DWORD dwFlags flags specifying aspects of device definition
1208 * LPCSTR lpDeviceName pointer to MS-DOS device name string
1209 * LPCSTR lpTargetPath pointer to MS-DOS or path string for
1210 * 32-bit Windows
1211 * Variables :
1212 * Result : If the function succeeds, the return value is nonzero.
1213 * If the function fails, the return value is zero
1214 * Remark :
1215 * Status : UNTESTED STUB
1216 *
1217 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1218 *****************************************************************************/
1219
1220BOOL WIN32API DefineDosDeviceA( DWORD dwFlags, LPCSTR lpDeviceName,
1221 LPCSTR lpTargetPath )
1222{
1223
1224 dprintf(("KERNEL32: DefineDosDeviceA(%08x,%08x,%08x) not implemented\n",
1225 dwFlags, lpDeviceName, lpTargetPath
1226 ));
1227
1228 return (FALSE);
1229}
1230
1231/*****************************************************************************
1232 * Name : BOOL WIN32API DefineDosDeviceW
1233 * Purpose : UNICODE version of DefineDosDeviceA
1234 * Parameters: DWORD dwFlags flags specifying aspects of device definition
1235 * LPCSTR lpDeviceName pointer to MS-DOS device name string
1236 * LPCSTR lpTargetPath pointer to MS-DOS or path string for
1237 * 32-bit Windows
1238 * Variables :
1239 * Result : If the function succeeds, the return value is nonzero.
1240 * If the function fails, the return value is zero
1241 * Remark :
1242 * Status : UNTESTED STUB
1243 *
1244 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1245 *****************************************************************************/
1246
1247BOOL WIN32API DefineDosDeviceW( DWORD dwFlags, LPCWSTR lpDeviceName,
1248 LPCWSTR lpTargetPath )
1249{
1250
1251 dprintf(("KERNEL32: DefineDosDeviceW(%08x,%08x,%08x) not implemented\n",
1252 dwFlags, lpDeviceName, lpTargetPath
1253 ));
1254
1255 return (FALSE);
1256}
1257
1258/*****************************************************************************
1259 * Name : VOID WIN32API DeleteFiber
1260 * Purpose : The DeleteFiber function deletes an existing fiber
1261 * Parameters: LPVOID lpFiber pointer to the fiber to delete
1262 * Variables :
1263 * Result : No returnvalue
1264 * Remark : The DeleteFiber function deletes all data associated with the
1265 * fiber. This data includes the stack, a subset of the registers,
1266 * and the fiber data. If the currently running fiber calls
1267 * DeleteFiber, the ExitThread function is called and the thread
1268 * terminates. If the currently running fiber is deleted by another
1269 * thread, the thread associated with the fiber is likely to
1270 * terminate abnormally because the fiber stack has been freed.
1271 * Status : UNTESTED STUB
1272 *
1273 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1274 *****************************************************************************/
1275
1276VOID WIN32API DeleteFiber(LPVOID lpFiber)
1277{
1278
1279 dprintf(("KERNEL32: DeleteFiber(%08x) not implemented\n",
1280 lpFiber
1281 ));
1282}
1283/*****************************************************************************
1284 * Name : BOOL WIN32API DisconnectNamedPipe
1285 * Purpose : The DisconnectNamedPipe function disconnects the server end
1286 * of a named pipe instance from a client process.
1287 * Parameters: HANDLE hNamedPipe handle to named pipe
1288 * Variables :
1289 * Result : If the function succeeds, the return value is nonzero.
1290 * If the function fails, the return value is zero
1291 * Remark :
1292 * Status : UNTESTED STUB
1293 *
1294 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1295 *****************************************************************************/
1296
1297BOOL WIN32API DisconnectNamedPipe(HANDLE hNamedPipe)
1298{
1299
1300 dprintf(("KERNEL32: DisconnectNamedPipe(%08x) not implemented\n",
1301 hNamedPipe
1302 ));
1303
1304 return (FALSE);
1305}
1306
1307/*****************************************************************************
1308 * Name : BOOL WIN3API EndUpdateResourceA
1309 * Purpose : The EndUpdateResourceA function ends a resource update
1310 * in an executable file.
1311 * Parameters: HANDLE hUpdate update-file handle
1312 * BOOL fDiscard write flag
1313 * Variables :
1314 * Result : If the function succeeds and the accumulated resource
1315 * modifications specified by calls to the UpdateResource function
1316 * are written to the specified executable file,
1317 * the return value is nonzero.
1318 * If the function fails, the return value is zero
1319 * Remark :
1320 * Status : UNTESTED STUB
1321 *
1322 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1323 *****************************************************************************/
1324
1325BOOL WIN32API EndUpdateResourceA(HANDLE hUpdate,BOOL fDiscard)
1326{
1327
1328 dprintf(("KERNEL32:EndUpdateResourceA(%08x,%08x)not implemented\n",
1329 hUpdate, fDiscard
1330 ));
1331
1332 return (FALSE);
1333}
1334
1335/*****************************************************************************
1336 * Name : BOOL WIN3API EndUpdateResourceW
1337 * Purpose : The EndUpdateResourceW function ends a resource update
1338 * in an executable file.
1339 * Parameters: HANDLE hUpdate update-file handle
1340 * BOOL fDiscard write flag
1341 * Variables :
1342 * Result : If the function succeeds and the accumulated resource
1343 * modifications specified by calls to the UpdateResource function
1344 * are written to the specified executable file,
1345 * the return value is nonzero.
1346 * If the function fails, the return value is zero
1347 * Remark :
1348 * Status : UNTESTED STUB
1349 *
1350 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1351 *****************************************************************************/
1352
1353BOOL WIN32API EndUpdateResourceW(HANDLE hUpdate,BOOL fDiscard)
1354{
1355
1356 dprintf(("KERNEL32:EndUpdateResourceW(%08x,%08x) not implemented\n",
1357 hUpdate, fDiscard
1358 ));
1359
1360 return (FALSE);
1361}
1362
1363/*****************************************************************************
1364 * Name : BOOL WIN32API EnumCalendarInfoA
1365 * Purpose : The EnumCalendarInfoA function enumerates calendar information
1366 * for a specified locale. The CalType parameter specifies the type
1367 * of calendar information to enumerate. The function returns the
1368 * specified calendar information for all applicable calendars for
1369 * the locale, or for a single requested calendar, depending on the
1370 * value of the Calendar parameter.
1371 * The EnumCalendarInfo function enumerates the calendar information
1372 * by calling an application-defined callback function. It passes
1373 * the callback function a pointer to a string buffer containing
1374 * the requested calendar information. This continues until either
1375 * the last applicable calendar is found or the callback function
1376 * returns FALSE.
1377 * Parameters: CALINFO_ENUMPROCA lpCalInfoEnumProc pointer to enumeration
1378 * callback function
1379 * LCID Locale locale whose calendar information is of interest
1380 * CALID Calendar calendar whose information is of interest
1381 * CALTYPE CalType type of calendar information of interest
1382 * Variables :
1383 * Result : If the function succeeds, the return value is nonzero.
1384 * If the function fails, the return value is zero
1385 * Remark :
1386 * Status : UNTESTED STUB
1387 *
1388 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1389 *****************************************************************************/
1390
1391BOOL WIN32API EnumCalendarInfoA(CALINFO_ENUMPROCA lpCalInfoEnumProc,
1392 LCID Locale,
1393 CALID Calendar,
1394 CALTYPE CalType)
1395{
1396
1397 dprintf(("KERNEL32: EnumCalendarInfoA(%08x,%08x,%08x,%08x)not implemented\n",
1398 lpCalInfoEnumProc,
1399 Locale,
1400 Calendar,
1401 CalType
1402 ));
1403
1404 return (FALSE);
1405}
1406
1407/*****************************************************************************
1408 * Name : BOOL WIN32API EnumCalendarInfoW
1409 * Purpose : The EnumCalendarInfoW function enumerates calendar information
1410 * for a specified locale. The CalType parameter specifies the type
1411 * of calendar information to enumerate. The function returns the
1412 * specified calendar information for all applicable calendars for
1413 * the locale, or for a single requested calendar, depending on the
1414 * value of the Calendar parameter.
1415 * The EnumCalendarInfo function enumerates the calendar information
1416 * by calling an application-defined callback function. It passes
1417 * the callback function a pointer to a string buffer containing
1418 * the requested calendar information. This continues until either
1419 * the last applicable calendar is found or the callback function
1420 * returns FALSE.
1421 * Parameters: CALINFO_ENUMPROCW lpCalInfoEnumProc pointer to enumeration
1422 * callback function
1423 * LCID Locale locale whose calendar information is of interest
1424 * CALID Calendar calendar whose information is of interest
1425 * CALTYPE CalType type of calendar information of interest
1426 * Variables :
1427 * Result : If the function succeeds, the return value is nonzero.
1428 * If the function fails, the return value is zero
1429 * Remark :
1430 * Status : UNTESTED STUB
1431 *
1432 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1433 *****************************************************************************/
1434
1435BOOL WIN32API EnumCalendarInfoW(CALINFO_ENUMPROCW lpCalInfoEnumProc,
1436 LCID Locale,
1437 CALID Calendar,
1438 CALTYPE CalType)
1439{
1440
1441 dprintf(("KERNEL32: EnumCalendarInfoW(%08x,%08x,%08x,%08x)not implemented\n",
1442 lpCalInfoEnumProc,
1443 Locale,
1444 Calendar,
1445 CalType
1446 ));
1447
1448 return (FALSE);
1449}
1450
1451/*****************************************************************************
1452 * Name : BOOL WIN32API EnumResourceLanguagesA
1453 * Purpose : The EnumResourceLanguagesA function searches a module for each
1454 * resource of the specified type and name and passes the language
1455 * of each resource it locates to a defined callback function
1456 * Parameters: HMODULE hModule resource-module handle
1457 * LPCTSTR lpType pointer to resource type
1458 * LPCTSTR lpName, pointer to resource name
1459 * ENUMRESLANGPROC lpEnumFunc pointer to callback function
1460 * LONG lParam application-defined parameter
1461 * Variables :
1462 * Result : If the function succeeds, the return value is nonzero.
1463 * If the function fails, the return value is zero.
1464 * Remark : The EnumResourceLanguages function continues to enumerate
1465 * resource languages until the callback function returns FALSE
1466 * or all resource languages have been enumerated.
1467 * Status : UNTESTED STUB
1468 *
1469 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1470 *****************************************************************************/
1471
1472BOOL WIN32API EnumResourceLanguagesA(HMODULE hModule, LPCSTR lpType,
1473 LPCSTR lpName,
1474 ENUMRESLANGPROCA lpEnumFunc,
1475 LONG lParam)
1476{
1477
1478 dprintf(("KERNEL32:EnumResourceLanguagesA(%08x,%08x,%08x,%08x,%08x)\n not implemented",
1479 hModule, lpType, lpName, lpEnumFunc, lParam
1480 ));
1481
1482 return (FALSE);
1483}
1484
1485/*****************************************************************************
1486 * Name : BOOL WIN32API EnumResourceLanguagesW
1487 * Purpose : The EnumResourceLanguagesW function searches a module for each
1488 * resource of the specified type and name and passes the language
1489 * of each resource it locates to a defined callback function
1490 * Parameters: HMODULE hModule resource-module handle
1491 * LPCTSTR lpType pointer to resource type
1492 * LPCTSTR lpName, pointer to resource name
1493 * ENUMRESLANGPROC lpEnumFunc pointer to callback function
1494 * LONG lParam application-defined parameter
1495 * Variables :
1496 * Result : If the function succeeds, the return value is nonzero.
1497 * If the function fails, the return value is zero.
1498 * Remark : The EnumResourceLanguages function continues to enumerate
1499 * resource languages until the callback function returns FALSE
1500 * or all resource languages have been enumerated.
1501 * Status : UNTESTED STUB
1502 *
1503 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1504 *****************************************************************************/
1505
1506BOOL WIN32API EnumResourceLanguagesW(HMODULE hModule, LPCWSTR lpType,
1507 LPCWSTR lpName,
1508 ENUMRESLANGPROCW lpEnumFunc,
1509 LONG lParam)
1510{
1511
1512 dprintf(("KERNEL32:EnumResourceLanguagesW(%08x,%08x,%08x,%08x,%08x)\n not implemented",
1513 hModule, lpType, lpName, lpEnumFunc, lParam
1514 ));
1515
1516 return (FALSE);
1517}
1518
1519
1520/*****************************************************************************
1521 * Name : BOOL WIN32API EnumResourceNamesW
1522 * Purpose : The EnumResourceNames function searches a module for each
1523 * resource of the specified type and passes the name of each
1524 * resource it locates to an application-defined callback function
1525 * Parameters: HINSTANCE hModule resource-module handling
1526 * LPCTSTR lpszType pointer to resource type
1527 * ENUMRESNAMEPROC lpEnumFunc pointer to callback function
1528 * LONG lParam application-defined parameter
1529 * Variables :
1530 * Result : If the function succeeds, the return value is nonzero.
1531 * If the function fails, the return value is zero
1532 * Remark : The EnumResourceNames function continues to enumerate resource
1533 * names until the callback function returns FALSE or all resource
1534 * names have been enumerated
1535 * Status : UNTESTED STUB
1536 *
1537 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1538 *****************************************************************************/
1539
1540BOOL WIN32API EnumResourceNamesW(HMODULE hModule,
1541 LPCWSTR lpszType,
1542 ENUMRESNAMEPROCW lpEnumFunc,
1543 LONG lParam)
1544{
1545
1546 dprintf(("KERNEL32:EnumResourceNamesW(%08x,%08x,%08x,%08x) not implemented\n",
1547 hModule,
1548 lpszType,
1549 lpEnumFunc,
1550 lParam
1551 ));
1552
1553 return (FALSE);
1554}
1555
1556/*****************************************************************************
1557 * Name : BOOL WIN32API EnumResourceTypesA
1558 * Purpose : The EnumResourceTypesA function searches a module for resources
1559 * and passes each resource type it finds to an application-defined
1560 * callback function
1561 * Parameters: HMODULE hModule, resource-module handle
1562 * ENUMRESTYPEPROC lpEnumFunc pointer to callback function
1563 * LONG lParam application-defined parameter
1564 * Variables :
1565 * Result : If the function succeeds, the return value is nonzero.
1566 * If the function fails, the return value is zero
1567 * Remark :
1568 * Status : UNTESTED STUB
1569 *
1570 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1571 *****************************************************************************/
1572
1573BOOL WIN32API EnumResourceTypesA(HMODULE hModule,
1574 ENUMRESTYPEPROCA lpEnumFunc, LONG lParam)
1575{
1576
1577 dprintf(("KERNEL32: EnumResourceTypesA(%08x,%08x,%08x) not implemented\n",
1578 hModule, lpEnumFunc, lParam
1579 ));
1580
1581 return (FALSE);
1582}
1583
1584/*****************************************************************************
1585 * Name : BOOL WIN32API EnumResourceTypesW
1586 * Purpose : The EnumResourceTypesW function searches a module for resources
1587 * and passes each resource type it finds to an application-defined
1588 * callback function
1589 * Parameters: HMODULE hModule, resource-module handle
1590 * ENUMRESTYPEPROC lpEnumFunc pointer to callback function
1591 * LONG lParam application-defined parameter
1592 * Variables :
1593 * Result : If the function succeeds, the return value is nonzero.
1594 * If the function fails, the return value is zero
1595 * Remark :
1596 * Status : UNTESTED STUB
1597 *
1598 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1599 *****************************************************************************/
1600
1601BOOL WIN32API EnumResourceTypesW(HMODULE hModule,
1602 ENUMRESTYPEPROCW lpEnumFunc, LONG lParam)
1603{
1604
1605 dprintf(("KERNEL32: EnumResourceTypesW(%08x,%08x,%08x) not implemented\n",
1606 hModule, lpEnumFunc, lParam
1607 ));
1608
1609 return (FALSE);
1610}
1611
1612/*****************************************************************************
1613 * Name : BOOL WIN32API EnumSystemCodePagesA
1614 * Purpose : The EnumSystemCodePagesA function enumerates the code pages that
1615 * are either installed on or supported by a system. The dwFlags
1616 * parameter determines whether the function enumerates installed
1617 * or supported code pages. The function enumerates the code pages
1618 * by passing code page identifiers, one at a time, to the specified
1619 * application-defined callback function. This continues until all
1620 * of the installed or supported code page identifiers have been
1621 * passed to the callback function, or the callback function
1622 * returns FALSE
1623 * Parameters: CODEPAGE_ENUMPROCA lpCodePageEnumProc pointer to enumeration
1624 * callback function
1625 * DWORD dwFlags indicates which code pages
1626 * to enumerate
1627 * Variables :
1628 * Result : If the function succeeds, the return value is nonzero.
1629 * If the function fails, the return value is zero
1630 * Remark :
1631 * Status : UNTESTED STUB
1632 *
1633 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1634 *****************************************************************************/
1635
1636BOOL WIN32API EnumSystemCodePagesA(CODEPAGE_ENUMPROCA lpCodePageEnumProc,
1637 DWORD dwFlags)
1638{
1639
1640 dprintf(("KERNEL32: EnumSystemCodePagesA(%08x,%08x) not implemented\n",
1641 lpCodePageEnumProc, dwFlags
1642 ));
1643
1644 return (FALSE);
1645}
1646
1647/*****************************************************************************
1648 * Name : BOOL WIN32API EnumSystemCodePagesW
1649 * Purpose : The EnumSystemCodePagesW function enumerates the code pages that
1650 * are either installed on or supported by a system. The dwFlags
1651 * parameter determines whether the function enumerates installed
1652 * or supported code pages. The function enumerates the code pages
1653 * by passing code page identifiers, one at a time, to the specified
1654 * application-defined callback function. This continues until all
1655 * of the installed or supported code page identifiers have been
1656 * passed to the callback function, or the callback function
1657 * returns FALSE
1658 * Parameters: CODEPAGE_ENUMPROCW lpCodePageEnumProc pointer to enumeration
1659 * callback function
1660 * DWORD dwFlags indicates which code pages
1661 * to enumerate
1662 * Variables :
1663 * Result : If the function succeeds, the return value is nonzero.
1664 * If the function fails, the return value is zero
1665 * Remark :
1666 * Status : UNTESTED STUB
1667 *
1668 * Author : Markus Montkowski [Tha, 1998/05/21 17:46]
1669 *****************************************************************************/
1670
1671BOOL WIN32API EnumSystemCodePagesW(CODEPAGE_ENUMPROCW lpCodePageEnumProc,
1672 DWORD dwFlags)
1673{
1674
1675 dprintf(("KERNEL32: EnumSystemCodePagesA(%08x,%08x) not implemented\n",
1676 lpCodePageEnumProc, dwFlags
1677 ));
1678
1679 return (FALSE);
1680}
1681
1682/*****************************************************************************
1683 * Name : DWORD WIN32API EraseTape
1684 * Purpose : The EraseTape function erases all or part of a tape.
1685 * Parameters: HANDLE hDevice handle to open device
1686 * DWORD dwEraseType type of erasure to perform
1687 * BOOL bImmediate return after erase operation begins
1688 * Variables :
1689 * Result : If the function succeeds, the return value is NO_ERROR.
1690 * If the function fails, the return value is like in
1691 * CreateTapePartition
1692 * Remark : Some tape devices do not support certain tape operations. To de
1693 * termine your tape device's capabilities, see your tape device
1694 * documentation and use the GetTapeParameters function
1695 * Status : UNTESTED STUB
1696 *
1697 * Author : Markus Montkowski [Tha, 1998/05/21 20:57]
1698 *****************************************************************************/
1699
1700DWORD WIN32API EraseTape( HANDLE hDevice, DWORD dwEraseType, BOOL bImmediate)
1701{
1702
1703 dprintf(("KERNEL32: EraseTape(%08x,%08x,%08x) not implemented - ERROR_NOT_SUPPORTED\n",
1704 hDevice, dwEraseType, bImmediate
1705 ));
1706
1707 return (ERROR_NOT_SUPPORTED);
1708}
1709
1710/*****************************************************************************
1711 * Name : DWORD WIN32API ExpandEnvironmentStringsA
1712 * Purpose : The ExpandEnvironmentStringsA function expands environment-variable
1713 * strings and replaces them with their defined values.
1714 * Parameters: LPCSTR lpSrc pointer to string with environment variables
1715 * LPSTR lpDst pointer to string with expanded environment variables
1716 * DWORD nSize maximum characters in expanded string
1717 * Variables :
1718 * Result : If the function succeeds, the return value is the number of
1719 * characters stored in the destination buffer. If the number of
1720 * characters is greater than the size of the destination buffer,
1721 * the return value is the size of the buffer required to hold
1722 * the expanded strings.
1723 * If the function fails, the return value is zero
1724 * Remark :
1725 * Status : UNTESTED STUB
1726 *
1727 * Author : Markus Montkowski [Tha, 1998/05/21 20:57]
1728 *****************************************************************************/
1729
1730DWORD WIN32API ExpandEnvironmentStringsA(LPCSTR lpSrc,LPSTR lpDst,DWORD nSize)
1731{
1732
1733 dprintf(("KERNEL32:ExpandEnvironmentStringsA(%08x,%08x,%08x) not implemented\n",
1734 lpSrc, lpDst, nSize
1735 ));
1736
1737 return (0);
1738}
1739
1740/*****************************************************************************
1741 * Name : DWORD WIN32API ExpandEnvironmentStringsW
1742 * Purpose : The ExpandEnvironmentStringsA function expands environment-variable
1743 * strings and replaces them with their defined values.
1744 * Parameters: LPCWSTR lpSrc pointer to string with environment variables
1745 * LPWSTR lpDst pointer to string with expanded environment variables
1746 * DWORD nSize maximum characters in expanded string
1747 * Variables :
1748 * Result : If the function succeeds, the return value is the number of
1749 * characters stored in the destination buffer. If the number of
1750 * characters is greater than the size of the destination buffer,
1751 * the return value is the size of the buffer required to hold
1752 * the expanded strings.
1753 * If the function fails, the return value is zero
1754 * Remark :
1755 * Status : UNTESTED STUB
1756 *
1757 * Author : Markus Montkowski [Tha, 1998/05/21 20:57]
1758 *****************************************************************************/
1759
1760DWORD WIN32API ExpandEnvironmentStringsW(LPCWSTR lpSrc,
1761 LPWSTR lpDst,
1762 DWORD nSize)
1763{
1764
1765 dprintf(("KERNEL32:ExpandEnvironmentStringsW(%08x,%08x,%08x) not implemented\n",
1766 lpSrc, lpDst, nSize
1767 ));
1768
1769 return (0);
1770}
1771
1772/*****************************************************************************
1773 * Name : HANDLE WIN32API FindFirstChangeNotificationW
1774 * Purpose : The FindFirstChangeNotification function creates a change
1775 * notification handle and sets up initial change notification
1776 * filter conditions. A wait on a notification handle succeeds when
1777 * a change matching the filter conditions occurs in the specified
1778 * directory or subtree.
1779 * Parameters: LPCWSTR lpPathName pointer to name of directory to watch
1780 * BOOL bWatchSubtree flag for monitoring directory or
1781 * directory tree
1782 * DWORD dwNotifyFilter filter conditions to watch for
1783 * Variables :
1784 * Result : If the function succeeds, the return value is a handle to a find
1785 * change notification object.
1786 * If the function fails, the return value is INVALID_HANDLE_VALUE
1787 * Remark :
1788 * Status : UNTESTED STUB
1789 *
1790 * Author : Markus Montkowski [Tha, 1998/05/21 20:57]
1791 *****************************************************************************/
1792
1793HANDLE WIN32API FindFirstChangeNotificationW( LPCWSTR lpPathName,
1794 BOOL bWatchSubtree,
1795 DWORD dwNotifyFilter)
1796{
1797
1798 dprintf(("KERNEL32: FindFirstChangeNotificationW(%08x,%08x,%08x) not implemented - INVALID_HANDLE_VALUE\n",
1799 lpPathName, bWatchSubtree, dwNotifyFilter
1800 ));
1801
1802 return (INVALID_HANDLE_VALUE);
1803}
1804
1805/*****************************************************************************
1806 * Name : HANDLE WIN32API FindFirstFileExA
1807 * Purpose : The FindFirstFileExA function searches a directory for a file
1808 * whose name and attributes match those specified in the
1809 * function call.
1810 * Parameters: LPCSTR lpFileName pointer to the name of the file
1811 * to search for
1812 * FINDEX_INFO_LEVELS fInfoLevelId information level of the returned data
1813 * LPVOID lpFindFileData pointer to the returned information
1814 * FINDEX_SEARCH_OPS fSearchOp type of filtering to perform
1815 * LPVOID lpSearchFilter pointer to search criteria
1816 * DWORD dwAdditionalFlags additional search control flags
1817 * Variables :
1818 * Result : If the function succeeds, the return value is a search handle
1819 * that can be used in a subsequent call to the FindNextFile or
1820 * FindClose functions.
1821 * If the function fails, the return value is INVALID_HANDLE_VALUE
1822 * Remark :
1823 * Status : UNTESTED STUB
1824 *
1825 * Author : Markus Montkowski [Tha, 1998/05/21 20:57]
1826 *****************************************************************************/
1827
1828HANDLE WIN32API FindFirstFileExA( LPCSTR lpFileName,
1829 FINDEX_INFO_LEVELS fInfoLevelId,
1830 LPVOID lpFindFileData,
1831 FINDEX_SEARCH_OPS fSearchOp,
1832 LPVOID lpSearchFilter,
1833 DWORD dwAdditionalFlags)
1834{
1835
1836 dprintf(("KERNEL32: FindFirstFileExA(%08x,%08x,%08x,%08x,%08x,%08x)not implemented - INVALID_HANDLE_VALUE\n",
1837 lpFileName,
1838 fInfoLevelId,
1839 lpFindFileData,
1840 fSearchOp,
1841 lpSearchFilter,
1842 dwAdditionalFlags
1843 ));
1844
1845 return (INVALID_HANDLE_VALUE);
1846}
1847
1848/*****************************************************************************
1849 * Name : HANDLE WIN32API FindFirstFileExW
1850 * Purpose : The FindFirstFileExW function searches a directory for a file
1851 * whose name and attributes match those specified in the
1852 * function call.
1853 * Parameters: LPCWSTR lpFileName pointer to the name of the file
1854 * to search for
1855 * FINDEX_INFO_LEVELS fInfoLevelId information level of the returned data
1856 * LPVOID lpFindFileData pointer to the returned information
1857 * FINDEX_SEARCH_OPS fSearchOp type of filtering to perform
1858 * LPVOID lpSearchFilter pointer to search criteria
1859 * DWORD dwAdditionalFlags additional search control flags
1860 * Variables :
1861 * Result : If the function succeeds, the return value is a search handle
1862 * that can be used in a subsequent call to the FindNextFile or
1863 * FindClose functions.
1864 * If the function fails, the return value is INVALID_HANDLE_VALUE
1865 * Remark :
1866 * Status : UNTESTED STUB
1867 *
1868 * Author : Markus Montkowski [Tha, 1998/05/21 20:57]
1869 *****************************************************************************/
1870
1871HANDLE WIN32API FindFirstFileExW( LPCWSTR lpFileName,
1872 FINDEX_INFO_LEVELS fInfoLevelId,
1873 LPVOID lpFindFileData,
1874 FINDEX_SEARCH_OPS fSearchOp,
1875 LPVOID lpSearchFilter,
1876 DWORD dwAdditionalFlags)
1877{
1878
1879 dprintf(("KERNEL32: FindFirstFileExW(%08x,%08x,%08x,%08x,%08x,%08x)not implemented - INVALID_HANDLE_VALUE\n",
1880 lpFileName,
1881 fInfoLevelId,
1882 lpFindFileData,
1883 fSearchOp,
1884 lpSearchFilter,
1885 dwAdditionalFlags
1886 ));
1887
1888 return (INVALID_HANDLE_VALUE);
1889}
1890
1891/*****************************************************************************
1892 * Name : HRSRC WIN32API FindResourceExA
1893 * Purpose : The FindResourceExA function determines the location of the
1894 * resource with the specified type, name, and language in the
1895 * specified module.
1896 * Parameters: HMODULE hModule resource-module handle
1897 * LPCSTR lpType pointer to resource type
1898 * LPCSTR lpName pointer to resource name
1899 * WORD wLanguage resource language
1900 * Variables :
1901 * Result : If the function succeeds, the return value is a handle to the
1902 * specified resource's info block. To obtain a handle to the
1903 * resource, pass this handle to the LoadResource function.
1904 * If the function fails, the return value is NULL
1905 * Remark :
1906 * Status : UNTESTED STUB
1907 *
1908 * Author : Markus Montkowski [Tha, 1998/05/21 20:57]
1909 *****************************************************************************/
1910
1911HRSRC WIN32API FindResourceExA( HMODULE hModule, LPCSTR lpType,
1912 LPCSTR lpName, WORD wLanguage)
1913{
1914
1915 dprintf(("KERNEL32: FindResourceExA(%08x,%08x,%08x,%08x) not implemented\n",
1916 hModule, lpType, lpName, wLanguage
1917 ));
1918
1919 return (NULL);
1920}
1921
1922/*****************************************************************************
1923 * Name : HRSRC WIN32API FindResourceExA
1924 * Purpose : The FindResourceExA function determines the location of the
1925 * resource with the specified type, name, and language in the
1926 * specified module.
1927 * Parameters: HMODULE hModule resource-module handle
1928 * LPCSTR lpType pointer to resource type
1929 * LPCSTR lpName pointer to resource name
1930 * WORD wLanguage resource language
1931 * Variables :
1932 * Result : If the function succeeds, the return value is a handle to the
1933 * specified resource's info block. To obtain a handle to the
1934 * resource, pass this handle to the LoadResource function.
1935 * If the function fails, the return value is NULL
1936 * Remark :
1937 * Status : UNTESTED STUB
1938 *
1939 * Author : Markus Montkowski [Tha, 1998/05/21 20:57]
1940 *****************************************************************************/
1941
1942HRSRC WIN32API FindResourceExW(HMODULE hModule,
1943 LPCWSTR lpType,
1944 LPCWSTR lpName,
1945 WORD wLanguage)
1946{
1947
1948 dprintf(("KERNEL32: FindResourceExW(%08x,%08x,%08x,%08x) not implemented\n",
1949 hModule, lpType, lpName, wLanguage
1950 ));
1951
1952 return (NULL);
1953}
1954
1955/*****************************************************************************
1956 * Name : BOOL WIN32API FlushViewOfFile
1957 * Purpose : The FlushViewOfFile function writes to the disk a byte range
1958 * within a mapped view of a file.
1959 * Parameters: LPCVOID lpBaseAddress start address of byte range to flush
1960 * DWORD dwNumberOfBytesToFlush number of bytes in range
1961 * Variables :
1962 * Result : If the function succeeds, the return value is nonzero.
1963 * If the function fails, the return value is zero
1964 * Remark :
1965 * Status : UNTESTED STUB
1966 *
1967 * Author : Markus Montkowski [Tha, 1998/05/21 20:57]
1968 *****************************************************************************/
1969
1970BOOL WIN32API FlushViewOfFile(LPCVOID lpBaseAddress,
1971 DWORD dwNumberOfBytesToFlush)
1972{
1973
1974 dprintf(("KERNEL32:FlushViewOfFile(%08x,%08x) not implemented\n",
1975 lpBaseAddress,
1976 dwNumberOfBytesToFlush
1977 ));
1978
1979 return (FALSE);
1980}
1981
1982/*****************************************************************************
1983 * Name : int WIN32API FoldStringA
1984 * Purpose : The FoldStringW function maps one string to another, performing
1985 * a specified transformation option.
1986 * Parameters: DWORD dwMapFlags, // mapping transformation options
1987 * LPCSTR lpSrcStr, // pointer to source string
1988 * int cchSrc, // size of source string, in bytes or characters
1989 * LPSTR lpDestStr, // pointer to destination buffer
1990 * int cchDest // size of destination buffer, in bytes or characters
1991 * Variables :
1992 * Result : If the function succeeds, the return value is the number of bytes
1993 * (ANSI version) or characters (Unicode version) written to the
1994 * destination buffer, or if the cchDest parameter is zero,
1995 * the number of bytes or characters required to hold the mapped
1996 * string.
1997 * If the function fails, the return value is zero
1998 * Remark :
1999 * Status : UNTESTED STUB
2000 *
2001 * Author : Markus Montkowski [Tha, 1998/05/21 20:57]
2002 *****************************************************************************/
2003
2004int WIN32API FoldStringA( DWORD dwMapFlags, LPCSTR lpSrcStr,
2005 int cchSrc, LPSTR lpDestStr, int cchDest)
2006{
2007
2008 dprintf(("KERNEL32: FoldStringA(%08x,%08x,%08x,%08x,%08x) not implemented\n",
2009 dwMapFlags, lpSrcStr, cchSrc, lpDestStr, cchDest
2010 ));
2011
2012 return (0);
2013}
2014
2015/*****************************************************************************
2016 * Name : int WIN32API FoldStringW
2017 * Purpose : The FoldStringW function maps one string to another, performing
2018 * a specified transformation option.
2019 * Parameters: DWORD dwMapFlags, // mapping transformation options
2020 * LPCSTR lpSrcStr, // pointer to source string
2021 * int cchSrc, // size of source string, in bytes or characters
2022 * LPSTR lpDestStr, // pointer to destination buffer
2023 * int cchDest // size of destination buffer, in bytes or characters
2024 * Variables :
2025 * Result : If the function succeeds, the return value is the number of bytes
2026 * (ANSI version) or characters (Unicode version) written to the
2027 * destination buffer, or if the cchDest parameter is zero,
2028 * the number of bytes or characters required to hold the mapped
2029 * string.
2030 * If the function fails, the return value is zero
2031 * Remark :
2032 * Status : UNTESTED STUB
2033 *
2034 * Author : Markus Montkowski [Tha, 1998/05/21 20:57]
2035 *****************************************************************************/
2036
2037int WIN32API FoldStringW( DWORD dwMapFlags, LPCWSTR lpSrcStr,
2038 int cchSrc, LPWSTR lpDestStr, int cchDest)
2039{
2040
2041 dprintf(("KERNEL32: FoldStringA(%08x,%08x,%08x,%08x,%08x) not implemented\n",
2042 dwMapFlags, lpSrcStr, cchSrc, lpDestStr, cchDest
2043 ));
2044
2045 return (0);
2046}
2047
2048
2049/*****************************************************************************
2050 * Name : VOID WIN32API FreeLibraryAndExitThread
2051 * Purpose : The FreeLibraryAndExitThread function decrements the reference
2052 * count of a loaded dynamic-link library (DLL) by one, and then
2053 * calls ExitThread to terminate the calling thread.
2054 * The function does not return.
2055 *
2056 * The FreeLibraryAndExitThread function gives threads that are
2057 * created and executed within a dynamic-link library an opportunity
2058 * to safely unload the DLL and terminate themselves.
2059 * Parameters:
2060 * Variables :
2061 * Result :
2062 * Remark :
2063 * Status : UNTESTED STUB
2064 *
2065 * Author : Markus Montkowski [Tha, 1998/05/21 20:57]
2066 *****************************************************************************/
2067
2068VOID WIN32API FreeLibraryAndExitThread( HMODULE hLibModule, DWORD dwExitCode)
2069{
2070
2071 dprintf(("KERNEL32: FreeLibraryAndExitThread(%08x,%08x) not implemented\n",
2072 hLibModule, dwExitCode
2073 ));
2074
2075}
2076
2077
2078/*****************************************************************************
2079 * Name : int GetCurrencyFormatA
2080 * Purpose : The GetCurrencyFormatA function formats a number string as a
2081 * currency string for a specified locale.
2082 * Parameters: LCID Locale locale for which currency string is to be formatted
2083 * DWORD dwFlags bit flag that controls the function's operation
2084 * LPCTSTR lpValue pointer to input number string
2085 * CONST CURRENCYFMT *lpFormat pointer to a formatting information structure
2086 * LPTSTR lpCurrencyStr pointer to output buffer
2087 * int cchCurrency size of output buffer
2088 * Variables :
2089 * Result : number of bytes written to buffer
2090 * Remark :
2091 * Status : UNTESTED STUB
2092 *
2093 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2094 *****************************************************************************/
2095
2096int WIN32API GetCurrencyFormatA(LCID Locale,
2097 DWORD dwFlags,
2098 LPCTSTR lpValue,
2099 CONST CURRENCYFMTA *lpFormat,
2100 LPTSTR lpCurrencyStr,
2101 int cchCurrency)
2102{
2103 dprintf(("KERNEL32: GetCurrencyFormatA(%08xh,%08xh,%08xh,%08xh,%08xh,%08xh) not implemented\n",
2104 Locale,
2105 dwFlags,
2106 lpValue,
2107 lpFormat,
2108 lpCurrencyStr,
2109 cchCurrency));
2110
2111 return (0);
2112}
2113
2114
2115/*****************************************************************************
2116 * Name : int GetCurrencyFormatW
2117 * Purpose : The GetCurrencyFormatW function formats a number string as a
2118 * currency string for a specified locale.
2119 * Parameters: LCID Locale locale for which currency string is to be formatted
2120 * DWORD dwFlags bit flag that controls the function's operation
2121 * LPCWSTR lpValue pointer to input number string
2122 * CONST CURRENCYFMT *lpFormat pointer to a formatting information structure
2123 * LPWSTR lpCurrencyStr pointer to output buffer
2124 * int cchCurrency size of output buffer
2125 * Variables :
2126 * Result : number of bytes written to buffer
2127 * Remark :
2128 * Status : UNTESTED STUB
2129 *
2130 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2131 *****************************************************************************/
2132
2133int WIN32API GetCurrencyFormatW(LCID Locale,
2134 DWORD dwFlags,
2135 LPCWSTR lpValue,
2136 CONST CURRENCYFMTW *lpFormat,
2137 LPWSTR lpCurrencyStr,
2138 int cchCurrency)
2139{
2140 dprintf(("KERNEL32: GetCurrencyFormatW(%08xh,%08xh,%08xh,%08xh,%08xh,%08xh) not implemented\n",
2141 Locale,
2142 dwFlags,
2143 lpValue,
2144 lpFormat,
2145 lpCurrencyStr,
2146 cchCurrency));
2147
2148 return (0);
2149}
2150
2151
2152/*****************************************************************************
2153 * Name : DWORD GetHandleInformation
2154 * Purpose : The GetHandleInformation function obtains information about certain
2155 * properties of an object handle. The information is obtained as a set of bit flags.
2156 * Parameters: HANDLE hObject
2157 * LPDWORD lpdwFlags
2158 * Variables :
2159 * Result : TRUE / FALSE
2160 * Remark :
2161 * Status : UNTESTED STUB
2162 *
2163 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2164 *****************************************************************************/
2165
2166BOOL WIN32API GetHandleInformation(HANDLE hObject,
2167 LPDWORD lpdwFlags)
2168{
2169 dprintf(("KERNEL32: GetHandleInformation (%08xh, %08xh) not implemented\n",
2170 hObject,
2171 lpdwFlags));
2172
2173 return (FALSE);
2174}
2175
2176
2177/*****************************************************************************
2178 * Name : BOOL GetMailslotInfo
2179 * Purpose : The GetMailslotInfo function retrieves information about the
2180 * specified mailslot.
2181 * Parameters: HANDLE hMailslot mailslot handle
2182 * LPDWORD lpMaxMessageSize address of maximum message size
2183 * LPDWORD lpNextSize address of size of next message
2184 * LPDWORD lpMessageCount address of number of messages
2185 * LPDWORD lpReadTimeout address of read time-out
2186 * Variables :
2187 * Result : TRUE / FALSE
2188 * Remark :
2189 * Status : UNTESTED STUB
2190 *
2191 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2192 *****************************************************************************/
2193
2194BOOL WIN32API GetMailslotInfo(HANDLE hMailslot,
2195 LPDWORD lpMaxMessageSize,
2196 LPDWORD lpNextSize,
2197 LPDWORD lpMessageCount,
2198 LPDWORD lpReadTimeout)
2199{
2200 dprintf(("KERNEL32: GetMailslotInfo(%08xh,%08xh,%08xh,%08xh,%08xh) not implemented\n",
2201 hMailslot,
2202 lpMaxMessageSize,
2203 lpNextSize,
2204 lpMessageCount,
2205 lpReadTimeout));
2206
2207 return (FALSE);
2208}
2209
2210
2211/*****************************************************************************
2212 * Name : BOOL GetNamedPipeHandleStateA
2213 * Purpose : The GetNamedPipeHandleStateA function retrieves information about
2214 * a specified named pipe. The information returned can vary during
2215 * the lifetime of an instance of the named pipe.
2216 * Parameters: HANDLE hNamedPipe handle of named pipe
2217 * LPDWORD lpState address of flags indicating pipe state
2218 * LPDWORD lpCurInstances address of number of current pipe instances
2219 * LPDWORD lpMaxCollectionCount address of max. bytes before remote transmission
2220 * LPDWORD lpCollectDataTimeout address of max. time before remote transmission
2221 * LPTSTR lpUserName address of user name of client process
2222 * DWORD nMaxUserNameSize size, in characters, of user name buffer
2223 * Variables :
2224 * Result : TRUE / FALSE
2225 * Remark :
2226 * Status : UNTESTED STUB
2227 *
2228 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2229 *****************************************************************************/
2230
2231BOOL WIN32API GetNamedPipeHandleStateA(HANDLE hNamedPipe,
2232 LPDWORD lpState,
2233 LPDWORD lpCurInstances,
2234 LPDWORD lpMaxCollectionCount,
2235 LPDWORD lpCollectDataTimeout,
2236 LPTSTR lpUserName,
2237 DWORD nMaxUserNameSize)
2238{
2239 dprintf(("KERNEL32: GetNamedPipeHandleStateA(%08xh,%08xh,%08xh,%08xh,%08xh,%08xh,%08xh) not implemented\n",
2240 hNamedPipe,
2241 lpState,
2242 lpCurInstances,
2243 lpMaxCollectionCount,
2244 lpCollectDataTimeout,
2245 lpUserName,
2246 nMaxUserNameSize));
2247
2248 return (FALSE);
2249}
2250
2251
2252/*****************************************************************************
2253 * Name : BOOL GetNamedPipeHandleStateW
2254 * Purpose : The GetNamedPipeHandleStateW function retrieves information about
2255 * a specified named pipe. The information returned can vary during
2256 * the lifetime of an instance of the named pipe.
2257 * Parameters: HANDLE hNamedPipe handle of named pipe
2258 * LPDWORD lpState address of flags indicating pipe state
2259 * LPDWORD lpCurInstances address of number of current pipe instances
2260 * LPDWORD lpMaxCollectionCount address of max. bytes before remote transmission
2261 * LPDWORD lpCollectDataTimeout address of max. time before remote transmission
2262 * LPWSTR lpUserName address of user name of client process
2263 * DWORD nMaxUserNameSize size, in characters, of user name buffer
2264 * Variables :
2265 * Result : TRUE / FALSE
2266 * Remark :
2267 * Status : UNTESTED STUB
2268 *
2269 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2270 *****************************************************************************/
2271
2272BOOL WIN32API GetNamedPipeHandleStateW(HANDLE hNamedPipe,
2273 LPDWORD lpState,
2274 LPDWORD lpCurInstances,
2275 LPDWORD lpMaxCollectionCount,
2276 LPDWORD lpCollectDataTimeout,
2277 LPWSTR lpUserName,
2278 DWORD nMaxUserNameSize)
2279{
2280 dprintf(("KERNEL32: GetNamedPipeHandleStateW(%08xh,%08xh,%08xh,%08xh,%08xh,%08xh,%08xh) not implemented\n",
2281 hNamedPipe,
2282 lpState,
2283 lpCurInstances,
2284 lpMaxCollectionCount,
2285 lpCollectDataTimeout,
2286 lpUserName,
2287 nMaxUserNameSize));
2288
2289 return (FALSE);
2290}
2291
2292
2293/*****************************************************************************
2294 * Name : BOOL GetNamedPipeInfo
2295 * Purpose : The GetNamedPipeInfo function retrieves information about the specified named pipe.
2296 * Parameters: HANDLE hNamedPipe handle of named pipe
2297 * LPDWORD lpFlags address of flags indicating type of pipe
2298 * LPDWORD lpOutBufferSize address of size, in bytes, of pipe's output buffer
2299 * LPDWORD lpInBufferSize address of size, in bytes, of pipe's input buffer
2300 * LPDWORD lpMaxInstances address of max. number of pipe instances
2301 * Variables :
2302 * Result : TRUE / FALSE
2303 * Remark :
2304 * Status : UNTESTED STUB
2305 *
2306 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2307 *****************************************************************************/
2308
2309BOOL WIN32API GetNamedPipeInfo(HANDLE hNamedPipe,
2310 LPDWORD lpFlags,
2311 LPDWORD lpOutBufferSize,
2312 LPDWORD lpInBufferSize,
2313 LPDWORD lpMaxInstances)
2314{
2315 dprintf(("KERNEL32: GetNamedPipeInfo(%08xh,%08xh,%08xh,%08xh,%08xh) not implemented\n",
2316 hNamedPipe,
2317 lpFlags,
2318 lpOutBufferSize,
2319 lpInBufferSize,
2320 lpMaxInstances));
2321
2322 return (FALSE);
2323}
2324
2325
2326
2327/*****************************************************************************
2328 * Name : BOOL GetProcessShutdownParameters
2329 * Purpose : The GetProcessShutdownParameters function retrieves shutdown
2330 * parameters for the currently calling process.
2331 * Parameters: LPDWORD lpdwLevel
2332 * LPDWORD lpdwFlags
2333 * Variables :
2334 * Result : TRUE / FALSE
2335 * Remark :
2336 * Status : UNTESTED STUB
2337 *
2338 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2339 *****************************************************************************/
2340
2341BOOL WIN32API GetProcessShutdownParameters(LPDWORD lpdwLevel,
2342 LPDWORD lpdwFlags)
2343{
2344 dprintf(("Kernel32: GetProcessShutdownParameters(%08xh,%08xh) not implemented.\n",
2345 lpdwLevel,
2346 lpdwFlags));
2347
2348 return (FALSE);
2349}
2350
2351
2352
2353/*****************************************************************************
2354 * Name : BOOL GetProcessTimes
2355 * Purpose : The GetProcessTimes function obtains timing information about a specified process.
2356 * Parameters: HANDLE hProcess specifies the process of interest
2357 * LPFILETIME lpCreationTime when the process was created
2358 * LPFILETIME lpExitTime when the process exited
2359 * LPFILETIME lpKernelTime time the process has spent in kernel mode
2360 * LPFILETIME lpUserTime time the process has spent in user mode
2361 * Variables :
2362 * Result : TRUE / FALSE
2363 * Remark :
2364 * Status : UNTESTED STUB
2365 *
2366 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2367 *****************************************************************************/
2368
2369BOOL WIN32API GetProcessTimes(HANDLE hProcess,
2370 LPFILETIME lpCreationTime,
2371 LPFILETIME lpExitTime,
2372 LPFILETIME lpKernelTime,
2373 LPFILETIME lpUserTime)
2374{
2375 dprintf(("Kernel32: GetProcessTimes(%08xh,%08xh,%08xh,%08xh,%08xh) not implemented.\n",
2376 hProcess,
2377 lpCreationTime,
2378 lpExitTime,
2379 lpKernelTime,
2380 lpUserTime));
2381
2382 return (FALSE);
2383}
2384
2385
2386/*****************************************************************************
2387 * Name : BOOL GetProcessWorkingSetSize
2388 * Purpose : The GetProcessWorkingSetSize function obtains the minimum and
2389 * maximum working set sizes of a specified process.
2390 * Parameters: HANDLE hProcess open handle to the process of interest
2391 * LPDWORD lpMinimumWorkingSetSize points to variable to receive minimum working set size
2392 * LPDWORD lpMaximumWorkingSetSize points to variable to receive maximum working set size
2393 * Variables :
2394 * Result : TRUE / FALSE
2395 * Remark :
2396 * Status : UNTESTED STUB
2397 *
2398 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2399 *****************************************************************************/
2400
2401BOOL WIN32API GetProcessWorkingSetSize(HANDLE hProcess,
2402 LPDWORD lpMinimumWorkingSetSize,
2403 LPDWORD lpMaximumWorkingSetSize)
2404{
2405 dprintf(("Kernel32: GetProcessWorkingSetSize(%08xh,%08xh,%08xh) not implemented - dummy values, TRUE.\n",
2406 hProcess,
2407 lpMinimumWorkingSetSize,
2408 lpMaximumWorkingSetSize));
2409
2410 /* PH: we're returning dummy values here */
2411 *lpMinimumWorkingSetSize = 512 * 1024; /* 512k */
2412 *lpMaximumWorkingSetSize = 65536 * 1024; /* 64M */
2413
2414 return (TRUE);
2415}
2416
2417
2418/*****************************************************************************
2419 * Name : BOOL GetQueuedCompletionStatus
2420 * Purpose : The GetQueuedCompletionStatus function attempts to dequeue an
2421 * I/O completion packet from a specified input/output completion
2422 * port. If there is no completion packet queued, the function waits
2423 * for a pending input/output operation associated with the completion
2424 * port to complete. The function returns when it can dequeue a
2425 * completion packet, or optionally when the function times out. If
2426 * the function returns because of an I/O operation completion, it
2427 * sets several variables that provide information about the operation.
2428 * Parameters: HANDLE CompletionPort the I/O completion port of interest
2429 * LPDWORD lpNumberOfBytesTransferred to receive number of bytes transferred during I/O
2430 * LPDWORD lpCompletionKey to receive file's completion key
2431 * LPOVERLAPPED * lpOverlapped to receive pointer to OVERLAPPED structure
2432 * DWORD dwMilliseconds optional timeout value
2433 * Variables :
2434 * Result : TRUE / FALSE
2435 * Remark :
2436 * Status : UNTESTED STUB
2437 *
2438 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2439 *****************************************************************************/
2440
2441BOOL WIN32API GetQueuedCompletionStatus(HANDLE CompletionPort,
2442 LPDWORD lpNumberOfBytesTransferred,
2443 LPDWORD lpCompletionKey,
2444 LPOVERLAPPED *lpOverlapped,
2445 DWORD dwMilliseconds)
2446{
2447 dprintf(("Kernel32: GetQueuedCompletionStatus(%08xh,%08xh,%08xh,%08xh,%08xh) not implemented.",
2448 CompletionPort,
2449 lpNumberOfBytesTransferred,
2450 lpCompletionKey,
2451 lpOverlapped,
2452 dwMilliseconds));
2453
2454 return (FALSE);
2455}
2456
2457
2458/*****************************************************************************
2459 * Name : BOOL GetSystemPowerStatus
2460 * Purpose : The GetSystemPowerStatus function retrieves the power status of
2461 * the system. The status indicates whether the system is running
2462 * on AC or DC power, whether the battery is currently charging,
2463 * and how much battery life currently remains.
2464 * Parameters: LPSYSTEM_POWER_STATUS lpSystemPowerStatus
2465 * Variables :
2466 * Result : TRUE / FALSE
2467 * Remark :
2468 * Status : UNTESTED STUB
2469 *
2470 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2471 *****************************************************************************/
2472
2473BOOL WIN32API GetSystemPowerStatus(LPSYSTEM_POWER_STATUS lpSystemPowerStatus)
2474{
2475 dprintf(("Kernel32: GetSystemPowerStatus(%08xh) not implemented.\n",
2476 lpSystemPowerStatus));
2477
2478 return (FALSE);
2479}
2480
2481
2482/*****************************************************************************
2483 * Name : BOOL GetSystemTimeAdjustment
2484 * Purpose : The GetSystemTimeAdjustment function determines whether the system
2485 * is applying periodic time adjustments to its time-of-day clock
2486 * at each clock interrupt, along with the value and period of any
2487 * such adjustments. Note that the period of such adjustments is
2488 * equivalent to the time period between clock interrupts.
2489 * Parameters: PDWORD lpTimeAdjustment
2490 * size, in 100-nanosecond units, of a periodic time adjustment
2491 * PDWORD lpTimeIncrement
2492 * time, in 100-nanosecond units, between periodic time adjustments
2493 * PBOOL lpTimeAdjustmentDisabled
2494 * whether periodic time adjustment is disabled or enabled
2495 * Variables :
2496 * Result : TRUE / FALSE
2497 * Remark :
2498 * Status : UNTESTED STUB
2499 *
2500 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2501 *****************************************************************************/
2502
2503BOOL WIN32API GetSystemTimeAdjustment(PDWORD lpTimeAdjustment,
2504 PDWORD lpTimeIncrement,
2505 PBOOL lpTimeAdjustmentDisabled)
2506{
2507 dprintf(("KERNEL32: GetSystemTimeAdjustment(%08xh,%08xh,%08xh) not implemented.\n",
2508 lpTimeAdjustment,
2509 lpTimeIncrement,
2510 lpTimeAdjustmentDisabled));
2511
2512 return (FALSE);
2513}
2514
2515
2516/*****************************************************************************
2517 * Name : BOOL GetTapeParameters
2518 * Purpose : The GetTapeParameters function retrieves information that
2519 * describes the tape or the tape drive.
2520 * Parameters: HANDLE hDevice handle of open device
2521 * DWORD dwOperation type of information requested
2522 * LPDWORD lpdwSize address of returned information
2523 * LPVOID lpTapeInformation tape media or drive information
2524 * Variables :
2525 * Result : API returncode
2526 * Remark :
2527 * Status : UNTESTED STUB
2528 *
2529 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2530 *****************************************************************************/
2531
2532DWORD WIN32API GetTapeParameters(HANDLE hDevice,
2533 DWORD dwOperation,
2534 LPDWORD lpdwSize,
2535 LPVOID lpTapeInformation)
2536{
2537 dprintf(("KERNEL32: GetTapeParameters(%08xh,%08xh,%08xh,%08xh) not implemented - ERROR_NOT_SUPPORTED.\n",
2538 hDevice,
2539 dwOperation,
2540 lpdwSize,
2541 lpTapeInformation));
2542
2543 return (ERROR_NOT_SUPPORTED);
2544}
2545
2546
2547/*****************************************************************************
2548 * Name : BOOL GetTapePosition
2549 * Purpose : The GetTapePosition function retrieves the current address of
2550 * the tape, in logical or absolute blocks.
2551 * Parameters: HANDLE hDevice handle of open device
2552 * DWORD dwPositionType type of address to obtain
2553 * LPDWORD lpdwPartition address of current tape partition
2554 * LPDWORD lpdwOffsetLow address of low-order 32 bits of tape position
2555 * LPDWORD lpdwOffsetHigh address of high-order 32 bits of tape position
2556 * Variables :
2557 * Result : TRUE / FALSE
2558 * Remark :
2559 * Status : UNTESTED STUB
2560 *
2561 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2562 *****************************************************************************/
2563
2564DWORD WIN32API GetTapePosition(HANDLE hDevice,
2565 DWORD dwPositionType,
2566 LPDWORD lpdwPartition,
2567 LPDWORD lpdwOffsetLow,
2568 LPDWORD lpdwOffsetHigh)
2569{
2570 dprintf(("KERNEL32: OS2GetTapePosition(%08xh,%08xh,%08xh,%08xh,%08xh) not implemented - ERROR_NOT_SUPPORTED.\n",
2571 hDevice,
2572 dwPositionType,
2573 lpdwPartition,
2574 lpdwOffsetLow,
2575 lpdwOffsetHigh));
2576
2577 return (ERROR_NOT_SUPPORTED);
2578}
2579
2580
2581/*****************************************************************************
2582 * Name : BOOL GetTapeStatus
2583 * Purpose : The GetTapeStatus function indicates whether the tape device is
2584 * ready to process tape commands.
2585 * Parameters: HANDLE hDevice handle of open device
2586 * Variables :
2587 * Result : API returncode
2588 * Remark :
2589 * Status : UNTESTED STUB
2590 *
2591 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2592 *****************************************************************************/
2593
2594DWORD WIN32API GetTapeStatus(HANDLE hDevice)
2595{
2596 dprintf(("KERNEL32: OS2GetTapeStatus(%08xh) not implemented - ERROR_NOT_SUPPORTED.\n",
2597 hDevice));
2598
2599 return (ERROR_NOT_SUPPORTED);
2600}
2601
2602
2603/*****************************************************************************
2604 * Name : BOOL GetThreadSelectorEntry
2605 * Purpose : The GetThreadSelectorEntry function retrieves a descriptor table
2606 * entry for the specified selector and thread.
2607 * Parameters: HANDLE hThread handle of thread that contains selector
2608 * DWORD dwSelector number of selector value to look up
2609 * LPLDT_ENTRY lpSelectorEntry address of selector entry structure
2610 * Variables :
2611 * Result : TRUE / FALSE
2612 * Remark :
2613 * Status : UNTESTED STUB
2614 *
2615 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2616 *****************************************************************************/
2617
2618BOOL WIN32API GetThreadSelectorEntry(HANDLE hThread,
2619 DWORD dwSelector,
2620 LPLDT_ENTRY lpSelectorEntry)
2621{
2622 dprintf(("KERNEL32: GetThreadSelectorEntry(%08xh,%08xh,%08xh) not implemented.\n",
2623 hThread,
2624 dwSelector,
2625 lpSelectorEntry));
2626
2627 return (FALSE);
2628}
2629
2630
2631/*****************************************************************************
2632 * Name : BOOL GetThreadTimes
2633 * Purpose : The GetThreadTimes function obtains timing information about a specified thread.
2634 * Parameters: HANDLE hThread specifies the thread of interest
2635 * LPFILETIME lpCreationTime when the thread was created
2636 * LPFILETIME lpExitTime when the thread exited
2637 * LPFILETIME lpKernelTime time the thread has spent in kernel mode
2638 * LPFILETIME lpUserTime time the thread has spent in user mode
2639 * Variables :
2640 * Result : TRUE / FALSE
2641 * Remark :
2642 * Status : UNTESTED STUB
2643 *
2644 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2645 *****************************************************************************/
2646
2647BOOL WIN32API GetThreadTimes(HANDLE hThread,
2648 LPFILETIME lpCreationTime,
2649 LPFILETIME lpExitTime,
2650 LPFILETIME lpKernelTime,
2651 LPFILETIME lpUserTime)
2652{
2653 dprintf(("Kernel32: GetThreadTimes(%08xh,%08xh,%08xh,%08xh,%08xh) not implemented.\n",
2654 hThread,
2655 lpCreationTime,
2656 lpExitTime,
2657 lpKernelTime,
2658 lpUserTime));
2659
2660 return (FALSE);
2661}
2662
2663
2664/*****************************************************************************
2665 * Name : HANDLE OpenFileMappingA
2666 * Purpose : The OpenFileMappingA function opens a named file-mapping object.
2667 * Parameters: DWORD dwDesiredAccess access mode
2668 * BOOL bInheritHandle inherit flag
2669 * LPCTSTR lpName address of name of file-mapping object
2670 * Variables :
2671 * Result : HANDLE to map object
2672 * Remark :
2673 * Status : UNTESTED STUB
2674 *
2675 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2676 *****************************************************************************/
2677
2678HANDLE WIN32API OpenFileMappingA(DWORD dwDesiredAccess,
2679 BOOL bInheritHandle,
2680 LPCTSTR lpName)
2681{
2682 dprintf(("Kernel32: OpenFileMappingA(%08xh,%08xh,%s) not implemented.\n",
2683 dwDesiredAccess,
2684 bInheritHandle,
2685 lpName));
2686
2687 return (0);
2688}
2689
2690
2691/*****************************************************************************
2692 * Name : HANDLE OpenFileMappingW
2693 * Purpose : The OpenFileMappingW function opens a named file-mapping object.
2694 * Parameters: DWORD dwDesiredAccess access mode
2695 * BOOL bInheritHandle inherit flag
2696 * LPCTSTR lpName address of name of file-mapping object
2697 * Variables :
2698 * Result : HANDLE to map object
2699 * Remark :
2700 * Status : UNTESTED STUB
2701 *
2702 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2703 *****************************************************************************/
2704
2705HANDLE WIN32API OpenFileMappingW(DWORD dwDesiredAccess,
2706 BOOL bInheritHandle,
2707 LPCWSTR lpName)
2708{
2709 dprintf(("Kernel32: OpenFileMappingW(%08xh,%08xh,%s) not implemented.\n",
2710 dwDesiredAccess,
2711 bInheritHandle,
2712 lpName));
2713
2714 return (0);
2715}
2716
2717
2718/*****************************************************************************
2719 * Name : BOOL PostQueuedCompletionStatus
2720 * Purpose : The PostQueuedCompletionStatus function lets you post an I/O
2721 * completion packet to an I/O completion port. The I/O completion
2722 * packet will satisfy an outstanding call to the GetQueuedCompletionStatus
2723 * function. The GetQueuedCompletionStatus function returns with the three
2724 * values passed as the second, third, and fourth parameters of the call
2725 * to PostQueuedCompletionStatus.
2726 * Parameters: HANDLE CompletionPort handle to an I/O completion port
2727 * DWORD dwNumberOfBytesTransferred
2728 * DWORD dwCompletionKey
2729 * LPOVERLAPPED lpOverlapped
2730 * Variables :
2731 * Result : TRUE / FALSE
2732 * Remark :
2733 * Status : UNTESTED STUB
2734 *
2735 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2736 *****************************************************************************/
2737
2738BOOL WIN32API PostQueuedCompletionStatus(HANDLE CompletionPort,
2739 DWORD dwNumberOfBytesTransferred,
2740 DWORD dwCompletionKey,
2741 LPOVERLAPPED lpOverlapped)
2742{
2743 dprintf(("Kernel32: PostQueuedCompletionStatus(%08xh,%08xh,%08xh,%08xh) not implemented.",
2744 CompletionPort,
2745 dwNumberOfBytesTransferred,
2746 dwCompletionKey,
2747 lpOverlapped));
2748
2749 return (FALSE);
2750}
2751
2752
2753/*****************************************************************************
2754 * Name : DWORD PrepareTape
2755 * Purpose : The PrepareTape function prepares the tape to be accessed or removed.
2756 * Parameters: HANDLE hDevice handle of open device
2757 * DWORD dwOperation preparation method
2758 * BOOL bImmediate return after operation begins
2759 * Variables :
2760 * Result : API returncode
2761 * Remark :
2762 * Status : UNTESTED STUB
2763 *
2764 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2765 *****************************************************************************/
2766
2767DWORD WIN32API PrepareTape(HANDLE hDevice,
2768 DWORD dwOperation,
2769 BOOL bImmediate)
2770{
2771 dprintf(("Kernel32: PrepareTape(%08xh,%08xh,%08xh) not implemented - ERROR_NOT_SUPPORTED.\n",
2772 hDevice,
2773 dwOperation,
2774 bImmediate));
2775
2776 return (ERROR_NOT_SUPPORTED);
2777}
2778
2779
2780/*****************************************************************************
2781 * Name : DWORD QueryDosDeviceA
2782 * Purpose : The QueryDosDevice function lets an application obtain information
2783 * about MS-DOS device names. The function can obtain the current
2784 * mapping for a particular MS-DOS device name. The function can also
2785 * obtain a list of all existing MS-DOS device names.
2786 * MS-DOS device names are stored as symbolic links in the Windows NT
2787 * object name space. The code that converts an MS-DOS path into a
2788 * corresponding Windows NT path uses these symbolic links to map
2789 * MS-DOS devices and drive letters. The QueryDosDevice function
2790 * provides a mechanism whereby a Win32-based application can query
2791 * the names of the symbolic links used to implement the MS-DOS device
2792 * namespace as well as the value of each specific symbolic link.
2793 * Parameters: LPCTSTR lpDeviceName address of MS-DOS device name string
2794 * LPTSTR lpTargetPath ddress of buffer for storing query results
2795 * DWORD ucchMax maximum storage capacity of buffer
2796 * Variables :
2797 * Result : pointer to lpTargetPath
2798 * Remark :
2799 * Status : UNTESTED STUB
2800 *
2801 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2802 *****************************************************************************/
2803
2804DWORD WIN32API QueryDosDeviceA(LPCTSTR lpDeviceName,
2805 LPTSTR lpTargetPath,
2806 DWORD ucchMax)
2807{
2808 dprintf(("Kernel32: QueryDosDeviceA(%s,%08xh,%08xh) not implemented.\n",
2809 lpDeviceName,
2810 lpTargetPath,
2811 ucchMax));
2812
2813 return (0);
2814}
2815
2816
2817/*****************************************************************************
2818 * Name : DWORD QueryDosDeviceW
2819 * Purpose : The QueryDosDevice function lets an application obtain information
2820 * about MS-DOS device names. The function can obtain the current
2821 * mapping for a particular MS-DOS device name. The function can also
2822 * obtain a list of all existing MS-DOS device names.
2823 * MS-DOS device names are stored as symbolic links in the Windows NT
2824 * object name space. The code that converts an MS-DOS path into a
2825 * corresponding Windows NT path uses these symbolic links to map
2826 * MS-DOS devices and drive letters. The QueryDosDevice function
2827 * provides a mechanism whereby a Win32-based application can query
2828 * the names of the symbolic links used to implement the MS-DOS device
2829 * namespace as well as the value of each specific symbolic link.
2830 * Parameters: LPCTSTR lpDeviceName address of MS-DOS device name string
2831 * LPTSTR lpTargetPath ddress of buffer for storing query results
2832 * DWORD ucchMax maximum storage capacity of buffer
2833 * Variables :
2834 * Result : pointer to lpTargetPath
2835 * Remark :
2836 * Status : UNTESTED STUB
2837 *
2838 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2839 *****************************************************************************/
2840
2841DWORD WIN32API QueryDosDeviceW(LPCWSTR lpDeviceName,
2842 LPWSTR lpTargetPath,
2843 DWORD ucchMax)
2844{
2845 dprintf(("Kernel32: QueryDosDeviceW(%s,%08xh,%08xh) not implemented.\n",
2846 lpDeviceName,
2847 lpTargetPath,
2848 ucchMax));
2849
2850 return (0);
2851}
2852
2853
2854/*****************************************************************************
2855 * Name : DWORD ReadProcessMemory
2856 * Purpose : The ReadProcessMemory function reads memory in a specified process.
2857 * The entire area to be read must be accessible, or the operation fails.
2858 * Parameters: HANDLE hProcess handle of the process whose memory is read
2859 * LPCVOID lpBaseAddress address to start reading
2860 * LPVOID lpBuffer address of buffer to place read data
2861 * DWORD cbRead number of bytes to read
2862 * LPDWORD lpNumberOfBytesRead address of number of bytes read
2863 * Variables :
2864 * Result : TRUE / FALSE
2865 * Remark :
2866 * Status : UNTESTED STUB
2867 *
2868 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2869 *****************************************************************************/
2870
2871DWORD WIN32API ReadProcessMemory(HANDLE hProcess,
2872 LPCVOID lpBaseAddress,
2873 LPVOID lpBuffer,
2874 DWORD cbRead,
2875 LPDWORD lpNumberOfBytesRead)
2876{
2877 dprintf(("Kernel32: ReadProcessMemory(%08xh,%08xh,%08xh,%08xh,%08xh) not implemented.\n",
2878 hProcess,
2879 lpBaseAddress,
2880 lpBuffer,
2881 cbRead,
2882 lpNumberOfBytesRead));
2883
2884 return (FALSE);
2885}
2886
2887
2888/*****************************************************************************
2889 * Name : BOOL SetComputerNameA
2890 * Purpose : The SetComputerNameA function sets the computer name to be used
2891 * the next time the system is restarted.
2892 * Parameters: LPCTSTR lpszName address of new computer name
2893 * Variables :
2894 * Result : TRUE / FALSE
2895 * Remark :
2896 * Status : UNTESTED STUB
2897 *
2898 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2899 *****************************************************************************/
2900
2901BOOL WIN32API SetComputerNameA(LPCTSTR lpszName)
2902{
2903 dprintf(("Kernel32: SetComputerNameA(%s) not implemented.\n",
2904 lpszName));
2905
2906 return (FALSE);
2907}
2908
2909
2910/*****************************************************************************
2911 * Name : BOOL SetComputerNameW
2912 * Purpose : The SetComputerNameW function sets the computer name to be used
2913 * the next time the system is restarted.
2914 * Parameters: LPCTSTR lpszName address of new computer name
2915 * Variables :
2916 * Result : TRUE / FALSE
2917 * Remark :
2918 * Status : UNTESTED STUB
2919 *
2920 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2921 *****************************************************************************/
2922
2923BOOL WIN32API SetComputerNameW(LPCWSTR lpszName)
2924{
2925 dprintf(("Kernel32: SetComputerNameW(%s) not implemented.\n",
2926 lpszName));
2927
2928 return (FALSE);
2929}
2930
2931
2932/*****************************************************************************
2933 * Name : VOID SetFileApisToOEM
2934 * Purpose : The SetFileApisToOEM function causes a set of Win32 file functions
2935 * to use the OEM character set code page. This function is useful
2936 * for 8-bit console input and output operations.
2937 * Parameters: VOID
2938 * Variables :
2939 * Result :
2940 * Remark :
2941 * Status : UNTESTED STUB
2942 *
2943 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2944 *****************************************************************************/
2945
2946VOID WIN32API SetFileApisToOEM(VOID)
2947{
2948 dprintf(("Kernel32: SetFileApisToOEM() not implemented.\n"));
2949}
2950
2951
2952/*****************************************************************************
2953 * Name : BOOL SetHandleInformation
2954 * Purpose : The SetHandleInformation function sets certain properties of an
2955 * object handle. The information is specified as a set of bit flags.
2956 * Parameters: HANDLE hObject handle to an object
2957 * DWORD dwMask specifies flags to change
2958 * DWORD dwFlags specifies new values for flags
2959 * Variables :
2960 * Result : TRUE / FALSE
2961 * Remark :
2962 * Status : UNTESTED STUB
2963 *
2964 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2965 *****************************************************************************/
2966
2967BOOL WIN32API SetHandleInformation(HANDLE hObject,
2968 DWORD dwMask,
2969 DWORD dwFlags)
2970{
2971 dprintf(("KERNEL32: SetHandleInformation(%08xh,%08xh,%08xh) not implemented.\n",
2972 hObject,
2973 dwMask,
2974 dwFlags));
2975
2976 return (FALSE);
2977}
2978
2979
2980/*****************************************************************************
2981 * Name : BOOL SetMailslotInfo
2982 * Purpose : The SetMailslotInfo function sets the time-out value used by the
2983 * specified mailslot for a read operation.
2984 * Parameters: HANDLE hObject handle to a mailslot object
2985 * DWORD dwReadTimeout read time-out
2986 * Variables :
2987 * Result : TRUE / FALSE
2988 * Remark :
2989 * Status : UNTESTED STUB
2990 *
2991 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2992 *****************************************************************************/
2993
2994BOOL WIN32API SetMailslotInfo(HANDLE hObject,
2995 DWORD dwReadTimeout)
2996{
2997 dprintf(("KERNEL32: SetMailslotInfo(%08xh,%08xh) not implemented.\n",
2998 hObject,
2999 dwReadTimeout));
3000
3001 return (FALSE);
3002}
3003
3004
3005/*****************************************************************************
3006 * Name : BOOL SetNamedPipeHandleState
3007 * Purpose : The SetNamedPipeHandleState function sets the read mode and the
3008 * blocking mode of the specified named pipe. If the specified handle
3009 * is to the client end of a named pipe and if the named pipe server
3010 * process is on a remote computer, the function can also be used to
3011 * control local buffering.
3012 * Parameters: HANDLE hNamedPipe handle of named pipe
3013 * LPDWORD lpdwMode address of new pipe mode
3014 * LPDWORD lpcbMaxCollect address of max. bytes before remote transmission
3015 * LPDWORD lpdwCollectDataTimeout address of max. time before remote transmission
3016 * Variables :
3017 * Result : TRUE / FALSE
3018 * Remark :
3019 * Status : UNTESTED STUB
3020 *
3021 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3022 *****************************************************************************/
3023
3024BOOL WIN32API SetNamedPipeHandleState(HANDLE hNamedPipe,
3025 LPDWORD lpdwMode,
3026 LPDWORD lpcbMaxCollect,
3027 LPDWORD lpdwCollectDataTimeout)
3028{
3029 dprintf(("KERNEL32: SetNamedPipeHandleState(%08xh,%08xh,%08xh,%08xh) not implemented.\n",
3030 hNamedPipe,
3031 lpdwMode,
3032 lpcbMaxCollect,
3033 lpdwCollectDataTimeout));
3034
3035 return (FALSE);
3036}
3037
3038
3039/*****************************************************************************
3040 * Name : BOOL SetProcessShutdownParameters
3041 * Purpose : The SetProcessShutdownParameters function sets shutdown parameters
3042 * for the currently calling process. This function sets a shutdown
3043 * order for a process relative to the other processes in the system.
3044 * Parameters: DWORD dwLevel shutdown priority
3045 * DWORD dwFlags shutdown flags
3046 * Variables :
3047 * Result : TRUE / FALSE
3048 * Remark :
3049 * Status : UNTESTED STUB
3050 *
3051 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3052 *****************************************************************************/
3053
3054BOOL WIN32API SetProcessShutdownParameters(DWORD dwLevel,
3055 DWORD dwFlags)
3056{
3057 dprintf(("KERNEL32: SetProcessShutdownParameters(%08xh,%08xh) not implemented.\n",
3058 dwLevel,
3059 dwFlags));
3060
3061 return (FALSE);
3062}
3063
3064
3065/*****************************************************************************
3066 * Name : BOOL SetProcessWorkingSetSize
3067 * Purpose : The SetProcessWorkingSetSize function sets the minimum and
3068 * maximum working set sizes for a specified process.
3069 * The working set of a process is the set of memory pages currently
3070 * visible to the process in physical RAM memory. These pages are
3071 * resident and available for an application to use without triggering
3072 * a page fault. The size of the working set of a process is specified
3073 * in bytes. The minimum and maximum working set sizes affect the
3074 * virtual memory paging behavior of a process.
3075 * Parameters: HANDLE hProcess open handle to the process of interest
3076 * DWORD dwMinimumWorkingSetSize specifies minimum working set size
3077 * DWORD dwMaximumWorkingSetSize specifies maximum working set size
3078 * Variables :
3079 * Result : TRUE / FALSE
3080 * Remark :
3081 * Status : UNTESTED STUB
3082 *
3083 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3084 *****************************************************************************/
3085
3086BOOL WIN32API SetProcessWorkingSetSize(HANDLE hProcess,
3087 DWORD dwMinimumWorkingSetSize,
3088 DWORD dwMaximumWorkingSetSize)
3089{
3090 dprintf(("KERNEL32: SetProcessWorkingSetSize(%08xh,%08xh,%08xh) not implemented.\n",
3091 hProcess,
3092 dwMinimumWorkingSetSize,
3093 dwMaximumWorkingSetSize));
3094
3095 return (FALSE);
3096}
3097
3098
3099/*****************************************************************************
3100 * Name : BOOL SetSystemPowerState
3101 * Purpose : The SetSystemPowerState function suspends the system by shutting
3102 * power down. Depending on the ForceFlag parameter, the function
3103 * either suspends operation immediately or requests permission from
3104 * all applications and device drivers before doing so.
3105 * Parameters: BOOL fSuspend
3106 * BOOL fForce
3107 * Variables :
3108 * Result : TRUE / FALSE
3109 * Remark :
3110 * Status : UNTESTED STUB
3111 *
3112 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3113 *****************************************************************************/
3114
3115BOOL WIN32API SetSystemPowerState(BOOL fSuspend,
3116 BOOL fForce)
3117{
3118 dprintf(("KERNEL32: SetSystemPowerState(%08xh,%08xh) not implemented.\n",
3119 fSuspend,
3120 fForce));
3121
3122 return (FALSE);
3123}
3124
3125
3126/*****************************************************************************
3127 * Name : BOOL SetSystemTimeAdjustment
3128 * Purpose : The SetSystemTimeAdjustment function tells the system to enable
3129 * or disable periodic time adjustments to its time of day clock.
3130 * Such time adjustments are used to synchronize the time of day
3131 * with some other source of time information. When periodic time
3132 * adjustments are enabled, they are applied at each clock interrupt.
3133 * Parameters: DWORD dwTimeAdjustment
3134 * BOOL bTimeAdjustmentDisabled
3135 * Variables :
3136 * Result : TRUE / FALSE
3137 * Remark :
3138 * Status : UNTESTED STUB
3139 *
3140 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3141 *****************************************************************************/
3142
3143BOOL WIN32API SetSystemTimeAdjustment(DWORD dwTimeAdjustment,
3144 BOOL bTimeAdjustmentDisabled)
3145{
3146 dprintf(("KERNEL32: SetSystemTimeAdjustment(%08xh,%08xh) not implemented.\n",
3147 dwTimeAdjustment,
3148 bTimeAdjustmentDisabled));
3149
3150 return (FALSE);
3151}
3152
3153
3154/*****************************************************************************
3155 * Name : DWORD SetTapeParameters
3156 * Purpose : The SetTapeParameters function either specifies the block size
3157 * of a tape or configures the tape device.
3158 * Parameters: HANDLE hDevice handle of open device
3159 * DWORD dwOperation type of information to set
3160 * LPVOID lpTapeInformation address of buffer with information to set
3161 * Variables :
3162 * Result : API returncode
3163 * Remark :
3164 * Status : UNTESTED STUB
3165 *
3166 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3167 *****************************************************************************/
3168
3169BOOL WIN32API SetTapeParameters(HANDLE hDevice,
3170 DWORD dwOperation,
3171 LPVOID lpTapeInformation)
3172{
3173 dprintf(("KERNEL32: SetTapeParameters(%08xh,%08xh,%08xh) not implemented - ERROR_NOT_SUPPORTED.\n",
3174 hDevice,
3175 dwOperation,
3176 lpTapeInformation));
3177
3178 return (ERROR_NOT_SUPPORTED);
3179}
3180
3181
3182/*****************************************************************************
3183 * Name : DWORD SetTapePosition
3184 * Purpose : The SetTapePosition sets the tape position on the specified device.
3185 * Parameters: HANDLE hDevice handle of open device
3186 * DWORD dwPositionMethod type of positioning to perform
3187 * DWORD dwPartition new tape partition
3188 * DWORD dwOffsetLow low-order 32 bits of tape position
3189 * DWORD dwOffsetHigh high-order 32 bits of tape position
3190 * BOOL bImmediate return after operation begins
3191 * Variables :
3192 * Result : API returncode
3193 * Remark :
3194 * Status : UNTESTED STUB
3195 *
3196 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3197 *****************************************************************************/
3198
3199BOOL WIN32API SetTapePosition(HANDLE hDevice,
3200 DWORD dwPositionMethod,
3201 DWORD dwPartition,
3202 DWORD dwOffsetLow,
3203 DWORD dwOffsetHigh,
3204 BOOL bImmediate)
3205{
3206 dprintf(("KERNEL32: SetTapePosition(%08xh,%08xh,%08xh,%08xh,%08xh,%08xh) not implemented - ERROR_NOT_SUPPORTED.\n",
3207 hDevice,
3208 dwPositionMethod,
3209 dwPartition,
3210 dwOffsetLow,
3211 dwOffsetHigh,
3212 bImmediate));
3213
3214 return (ERROR_NOT_SUPPORTED);
3215}
3216
3217
3218/*****************************************************************************
3219 * Name : DWORD SetThreadAffinityMask
3220 * Purpose : The SetThreadAffinityMask function sets a processor affinity
3221 * mask for a specified thread.
3222 * A thread affinity mask is a bit vector in which each bit
3223 * represents the processors that a thread is allowed to run on.
3224 * A thread affinity mask must be a proper subset of the process
3225 * affinity mask for the containing process of a thread. A thread
3226 * is only allowed to run on the processors its process is allowed to run on.
3227 * Parameters: HANDLE hThread handle to the thread of interest
3228 * DWORD dwThreadAffinityMask a thread affinity mask
3229 * Variables :
3230 * Result : TRUE / FALSE
3231 * Remark :
3232 * Status : UNTESTED STUB
3233 *
3234 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3235 *****************************************************************************/
3236
3237DWORD WIN32API SetThreadAffinityMask(HANDLE hThread,
3238 DWORD dwThreadAffinityMask)
3239{
3240 dprintf(("KERNEL32: SetThreadAffinityMask(%08xh,%08xh) not implemented.\n",
3241 hThread,
3242 dwThreadAffinityMask));
3243
3244 return (0);
3245}
3246
3247
3248/*****************************************************************************
3249 * Name : DWORD TransactNamedPipe
3250 * Purpose : The TransactNamedPipe function combines into a single network
3251 * operation the functions that write a message to and read a
3252 * message from the specified named pipe.
3253 * Parameters: HANDLE hNamedPipe handle of named pipe
3254 * LPVOID lpvWriteBuf address of write buffer
3255 * DWORD cbWriteBuf size of the write buffer, in bytes
3256 * LPVOID lpvReadBuf address of read buffer
3257 * DWORD cbReadBuf size of read buffer, in bytes
3258 * LPDWORD lpcbRead address of variable for bytes actually read
3259 * LPOVERLAPPED lpo address of overlapped structure
3260 * Variables :
3261 * Result : TRUE / FALSE
3262 * Remark :
3263 * Status : UNTESTED STUB
3264 *
3265 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3266 *****************************************************************************/
3267
3268DWORD WIN32API TransactNamedPipe(HANDLE hNamedPipe,
3269 LPVOID lpvWriteBuf,
3270 DWORD cbWriteBuf,
3271 LPVOID lpvReadBuf,
3272 DWORD cbReadBuf,
3273 LPDWORD lpcbRead,
3274 LPOVERLAPPED lpo)
3275{
3276 dprintf(("KERNEL32: TransactNamedPipe(%08x,%08x,%08x,%08x,%08x,%08x,%08x) not implemented.\n",
3277 hNamedPipe,
3278 lpvWriteBuf,
3279 cbWriteBuf,
3280 lpvReadBuf,
3281 cbReadBuf,
3282 lpcbRead,
3283 lpo));
3284
3285 return (FALSE);
3286}
3287
3288
3289/*****************************************************************************
3290 * Name : BOOL UpdateResourceA
3291 * Purpose : The UpdateResourceA function adds, deletes, or replaces a resource
3292 * in an executable file.
3293 * Parameters: HANDLE hUpdateFile update-file handle
3294 * LPCTSTR lpszType address of resource type to update
3295 * LPCTSTR lpszName address of resource name to update
3296 * WORD IDLanguage language identifier of resource
3297 * LPVOID lpvData address of resource data
3298 * DWORD cbData length of resource data, in bytes
3299 * Variables :
3300 * Result : TRUE / FALSE
3301 * Remark :
3302 * Status : UNTESTED STUB
3303 *
3304 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3305 *****************************************************************************/
3306
3307BOOL WIN32API UpdateResourceA(HANDLE hUpdateFile,
3308 LPCTSTR lpszType,
3309 LPCTSTR lpszName,
3310 WORD IDLanguage,
3311 LPVOID lpvData,
3312 DWORD cbData)
3313{
3314 dprintf(("KERNEL32: UpdateResourceA(%08xh,%s,%s,%08xh,%08xh,%08xh) not implemented.\n",
3315 hUpdateFile,
3316 lpszType,
3317 lpszName,
3318 IDLanguage,
3319 lpvData,
3320 cbData));
3321
3322 return (FALSE);
3323}
3324
3325
3326/*****************************************************************************
3327 * Name : BOOL UpdateResourceW
3328 * Purpose : The UpdateResourceW function adds, deletes, or replaces a resource
3329 * in an executable file.
3330 * Parameters: HANDLE hUpdateFile update-file handle
3331 * LPCTSTR lpszType address of resource type to update
3332 * LPCTSTR lpszName address of resource name to update
3333 * WORD IDLanguage language identifier of resource
3334 * LPVOID lpvData address of resource data
3335 * DWORD cbData length of resource data, in bytes
3336 * Variables :
3337 * Result : TRUE / FALSE
3338 * Remark :
3339 * Status : UNTESTED STUB
3340 *
3341 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3342 *****************************************************************************/
3343
3344BOOL WIN32API UpdateResourceW(HANDLE hUpdateFile,
3345 LPCWSTR lpszType,
3346 LPCWSTR lpszName,
3347 WORD IDLanguage,
3348 LPVOID lpvData,
3349 DWORD cbData)
3350{
3351 dprintf(("KERNEL32: UpdateResourceW(%08xh,%s,%s,%08xh,%08xh,%08xh) not implemented.\n",
3352 hUpdateFile,
3353 lpszType,
3354 lpszName,
3355 IDLanguage,
3356 lpvData,
3357 cbData));
3358
3359 return (FALSE);
3360}
3361
3362
3363/*****************************************************************************
3364 * Name : BOOL WaitForDebugEvent
3365 * Purpose : The WaitForDebugEvent function waits for a debugging event to
3366 * occur in a process being debugged.
3367 * Parameters: LPDEBUG_EVENT lpde address of structure for event information
3368 * DWORD dwTimeout number of milliseconds to wait for event
3369 * Variables :
3370 * Result : TRUE / FALSE
3371 * Remark :
3372 * Status : UNTESTED STUB
3373 *
3374 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3375 *****************************************************************************/
3376
3377BOOL WIN32API WaitForDebugEvent(LPDEBUG_EVENT lpde,
3378 DWORD dwTimeout)
3379{
3380 dprintf(("KERNEL32: WaitForDebugEvent(%08xh,%08xh) not implemented.\n",
3381 lpde,
3382 dwTimeout));
3383
3384 return (FALSE);
3385}
3386
3387
3388/*****************************************************************************
3389 * Name : BOOL WaitNamedPipeA
3390 * Purpose : The WaitNamedPipe function waits until either a time-out interval
3391 * elapses or an instance of the specified named pipe is available
3392 * to be connected to (that is, the pipe's server process has a
3393 * pending ConnectNamedPipe operation on the pipe).
3394 * Parameters: LPCTSTR lpszNamedPipeName
3395 * DWORD dwTimeout
3396 * Variables :
3397 * Result : TRUE / FALSE
3398 * Remark :
3399 * Status : UNTESTED STUB
3400 *
3401 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3402 *****************************************************************************/
3403
3404BOOL WIN32API WaitNamedPipeA(LPCTSTR lpszNamedPipeName,
3405 DWORD dwTimeout)
3406{
3407 dprintf(("KERNEL32: WaitNamedPipeA(%s, %u) not implemented.\n",
3408 lpszNamedPipeName,
3409 dwTimeout));
3410
3411 return (FALSE);
3412}
3413
3414
3415/*****************************************************************************
3416 * Name : BOOL WaitNamedPipeW
3417 * Purpose : The WaitNamedPipe function waits until either a time-out interval
3418 * elapses or an instance of the specified named pipe is available
3419 * to be connected to (that is, the pipe's server process has a
3420 * pending ConnectNamedPipe operation on the pipe).
3421 * Parameters: LPCWSTR lpszNamedPipeName
3422 * DWORD dwTimeout
3423 * Variables :
3424 * Result : TRUE / FALSE
3425 * Remark :
3426 * Status : UNTESTED STUB
3427 *
3428 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3429 *****************************************************************************/
3430
3431BOOL WIN32API WaitNamedPipeW(LPCWSTR lpszNamedPipeName,
3432 DWORD dwTimeout)
3433{
3434 dprintf(("KERNEL32: WaitNamedPipeW(%s, %u) not implemented.\n",
3435 lpszNamedPipeName,
3436 dwTimeout));
3437
3438 return (FALSE);
3439}
3440
3441
3442/*****************************************************************************
3443 * Name : DWORD WriteProcessMemory
3444 * Purpose : The WriteProcessMemory function writes memory in a specified
3445 * process. The entire area to be written to must be accessible,
3446 * or the operation fails.
3447 * Parameters: HANDLE hProcess handle of process whose memory is written to
3448 * LPVOID lpBaseAddress address to start writing to
3449 * LPVOID lpBuffer address of buffer to write data to
3450 * DWORD cbWrite number of bytes to write
3451 * LPDWORD lpNumberOfBytesWritten actual number of bytes written
3452 * Variables :
3453 * Result : TRUE / FALSE
3454 * Remark :
3455 * Status : UNTESTED STUB
3456 *
3457 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3458 *****************************************************************************/
3459
3460DWORD WIN32API WriteProcessMemory(HANDLE hProcess,
3461 LPCVOID lpBaseAddress,
3462 LPVOID lpBuffer,
3463 DWORD cbWrite,
3464 LPDWORD lpNumberOfBytesWritten)
3465{
3466 dprintf(("Kernel32: WriteProcessMemory(%08xh,%08xh,%08xh,%08xh,%08xh) not implemented.\n",
3467 hProcess,
3468 lpBaseAddress,
3469 lpBuffer,
3470 cbWrite,
3471 lpNumberOfBytesWritten));
3472
3473 return (FALSE);
3474}
3475
3476
3477/*****************************************************************************
3478 * Name : BOOL WriteTapemark
3479 * Purpose : The WriteTapemark function writes a specified number of filemarks,
3480 * setmarks, short filemarks, or long filemarks to a tape device.
3481 * These tapemarks divide a tape partition into smaller areas.
3482 * Parameters: HANDLE hDevice handle of open device
3483 * DWORD dwTapemarkType type of tapemarks to write
3484 * DWORD dwTapemarkCount number of tapemarks to write
3485 * BOOL bImmediate return after write begins
3486 * Variables :
3487 * Result : API returncode
3488 * Remark :
3489 * Status : UNTESTED STUB
3490 *
3491 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3492 *****************************************************************************/
3493
3494DWORD WIN32API WriteTapemark(HANDLE hDevice,
3495 DWORD dwTapemarkType,
3496 DWORD dwTapemarkCount,
3497 BOOL bImmediate)
3498{
3499 dprintf(("KERNEL32: WriteTapemark(%08xh,%08xh,%08xh,%08xh) not implemented - ERROR_NOT_SUPPORTED.\n",
3500 hDevice,
3501 dwTapemarkType,
3502 dwTapemarkCount,
3503 bImmediate));
3504
3505 return (ERROR_NOT_SUPPORTED);
3506}
3507
3508
3509/*****************************************************************************
3510 * Name : DWORD CmdBatNotification
3511 * Purpose : Unknown, used by /winnt/cmd.exe
3512 * Parameters: Unknown (wrong)
3513 * Variables :
3514 * Result : Unknown
3515 * Remark :
3516 * Status : UNTESTED STUB
3517 *
3518 * Author : Patrick Haller [Tue, 1999/06/08 21:44]
3519 *****************************************************************************/
3520
3521DWORD WIN32API CmdBatNotification(DWORD x1)
3522{
3523 dprintf(("KERNEL32: CmdBatNotification(%08xh) not implemented\n",
3524 x1));
3525
3526 return (0);
3527}
3528
3529
3530/*****************************************************************************
3531 * Name : DWORD GetVDMCurrentDirectories
3532 * Purpose : Unknown, used by /winnt/cmd.exe
3533 * Parameters: Unknown (wrong)
3534 * Variables :
3535 * Result : Unknown
3536 * Remark :
3537 * Status : UNTESTED STUB
3538 *
3539 * Author : Patrick Haller [Tue, 1999/06/08 21:44]
3540 *****************************************************************************/
3541
3542DWORD WIN32API GetVDMCurrentDirectories(DWORD x1)
3543{
3544 dprintf(("KERNEL32: GetVDMCurrentDirectories(%08xh) not implemented\n",
3545 x1));
3546
3547 return (0);
3548}
3549
3550
Note: See TracBrowser for help on using the repository browser.