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

Last change on this file since 3313 was 3281, checked in by cbratschi, 25 years ago

explorer.exe stubs

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