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

Last change on this file since 2115 was 2115, checked in by sandervl, 26 years ago

EB's changes for GetThreadContext + Read/WriteProcessMemory

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