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

Last change on this file since 4 was 4, checked in by ktk, 26 years ago

Import

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