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

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

PB: Started with named pipe api implementation

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