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

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

Added new logging feature

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