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

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

Code cleanup #1 for build, mainly addresses linkage problems

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