2 * Internal NT APIs and data structures
4 * Copyright (C) the Wine project
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #ifndef __WINE_WINTERNAL_H
22 #define __WINE_WINTERNAL_H
30 #endif /* defined(__cplusplus) */
32 /***********************************************************************
43 /***********************************************************************
53 PVOID ReservedForOle
; /* Windows 2000 only */
55 PVOID TlsExpansionSlots
;
59 /**********************************************************************
60 * Fundamental types and data structures
63 typedef LONG NTSTATUS
;
65 typedef CONST
char *PCSZ
;
68 typedef CSHORT
*PCSHORT
;
70 typedef struct _STRING
{
76 typedef STRING ANSI_STRING
;
77 typedef PSTRING PANSI_STRING
;
78 typedef const STRING
*PCANSI_STRING
;
80 typedef STRING OEM_STRING
;
81 typedef PSTRING POEM_STRING
;
82 typedef const STRING
*PCOEM_STRING
;
84 typedef struct _UNICODE_STRING
{
85 USHORT Length
; /* bytes */
86 USHORT MaximumLength
; /* bytes */
88 } UNICODE_STRING
, *PUNICODE_STRING
;
90 typedef const UNICODE_STRING
*PCUNICODE_STRING
;
92 /***********************************************************************
96 typedef enum _FILE_INFORMATION_CLASS
{
97 FileDirectoryInformation
= 1,
98 FileFullDirectoryInformation
,
99 FileBothDirectoryInformation
,
100 FileBasicInformation
,
101 FileStandardInformation
,
102 FileInternalInformation
,
104 FileAccessInformation
,
106 FileRenameInformation
,
108 FileNamesInformation
,
109 FileDispositionInformation
,
110 FilePositionInformation
,
111 FileFullEaInformation
,
113 FileAlignmentInformation
,
115 FileAllocationInformation
,
116 FileEndOfFileInformation
,
117 FileAlternateNameInformation
,
118 FileStreamInformation
,
120 FilePipeLocalInformation
,
121 FilePipeRemoteInformation
,
122 FileMailslotQueryInformation
,
123 FileMailslotSetInformation
,
124 FileCompressionInformation
,
125 FileObjectIdInformation
,
126 FileCompletionInformation
,
127 FileMoveClusterInformation
,
128 FileQuotaInformation
,
129 FileReparsePointInformation
,
130 FileNetworkOpenInformation
,
131 FileAttributeTagInformation
,
132 FileTrackingInformation
,
133 FileMaximumInformation
134 } FILE_INFORMATION_CLASS
, *PFILE_INFORMATION_CLASS
;
136 typedef enum _FSINFOCLASS
{
137 FileFsVolumeInformation
= 1,
138 FileFsLabelInformation
,
139 FileFsSizeInformation
,
140 FileFsDeviceInformation
,
141 FileFsAttributeInformation
,
142 FileFsControlInformation
,
143 FileFsFullSizeInformation
,
144 FileFsObjectIdInformation
,
145 FileFsMaximumInformation
146 } FS_INFORMATION_CLASS
, *PFS_INFORMATION_CLASS
;
148 typedef enum _KEY_INFORMATION_CLASS
{
152 } KEY_INFORMATION_CLASS
;
154 typedef enum _KEY_VALUE_INFORMATION_CLASS
{
155 KeyValueBasicInformation
,
156 KeyValueFullInformation
,
157 KeyValuePartialInformation
,
158 KeyValueFullInformationAlign64
,
159 KeyValuePartialInformationAlign64
160 } KEY_VALUE_INFORMATION_CLASS
;
162 typedef enum _OBJECT_INFORMATION_CLASS
{
163 DunnoTheConstants1
/* FIXME */
164 } OBJECT_INFORMATION_CLASS
, *POBJECT_INFORMATION_CLASS
;
166 typedef enum _PROCESSINFOCLASS
{
167 ProcessBasicInformation
= 0,
168 ProcessQuotaLimits
= 1,
169 ProcessIoCounters
= 2,
170 ProcessVmCounters
= 3,
172 ProcessBasePriority
= 5,
173 ProcessRaisePriority
= 6,
174 ProcessDebugPort
= 7,
175 ProcessExceptionPort
= 8,
176 ProcessAccessToken
= 9,
177 ProcessLdtInformation
= 10,
179 ProcessDefaultHardErrorMode
= 12,
180 ProcessIoPortHandlers
= 13,
181 ProcessPooledUsageAndLimits
= 14,
182 ProcessWorkingSetWatch
= 15,
183 ProcessUserModeIOPL
= 16,
184 ProcessEnableAlignmentFaultFixup
= 17,
185 ProcessPriorityClass
= 18,
186 ProcessWx86Information
= 19,
187 ProcessHandleCount
= 20,
188 ProcessAffinityMask
= 21,
189 ProcessPriorityBoost
= 22,
190 ProcessDeviceMap
= 23,
191 ProcessSessionInformation
= 24,
192 ProcessForegroundInformation
= 25,
193 ProcessWow64Information
= 26,
197 typedef enum _SECTION_INHERIT
{
202 typedef enum SYSTEM_INFORMATION_CLASS
{
203 SystemBasicInformation
= 0,
205 SystemPerformanceInformation
= 2,
206 SystemTimeOfDayInformation
= 3, /* was SystemTimeInformation */
208 SystemProcessInformation
= 5,
211 SystemProcessorPerformanceInformation
= 8,
214 SystemDriverInformation
,
224 SystemCacheInformation
,
226 SystemInterruptInformation
= 23,
227 SystemExceptionInformation
= 33,
228 SystemRegistryQuotaInformation
= 37,
229 SystemLookasideInformation
= 45
230 } SYSTEM_INFORMATION_CLASS
, *PSYSTEM_INFORMATION_CLASS
;
232 typedef enum _TIMER_TYPE
{
237 typedef enum _THREADINFOCLASS
{
238 ThreadBasicInformation
,
243 ThreadImpersonationToken
,
244 ThreadDescriptorTableEntry
,
245 ThreadEnableAlignmentFaultFixup
,
246 ThreadEventPair_Reusable
,
247 ThreadQuerySetWin32StartAddress
,
249 ThreadPerformanceCount
,
251 ThreadIdealProcessor
,
253 ThreadSetTlsArrayAddress
,
258 typedef enum _WINSTATIONINFOCLASS
{
259 WinStationInformation
= 8
260 } WINSTATIONINFOCLASS
;
264 MemoryBasicInformation
= 0
265 } MEMORY_INFORMATION_CLASS
;
267 /***********************************************************************
268 * IA64 specific types and data structures
273 typedef struct _FRAME_POINTERS
{
274 ULONGLONG MemoryStackFp
;
275 ULONGLONG BackingStoreFp
;
276 } FRAME_POINTERS
, *PFRAME_POINTERS
;
278 #define UNWIND_HISTORY_TABLE_SIZE 12
280 typedef struct _RUNTIME_FUNCTION
{
283 ULONG UnwindInfoAddress
;
284 } RUNTIME_FUNCTION
, *PRUNTIME_FUNCTION
;
286 typedef struct _UNWIND_HISTORY_TABLE_ENTRY
{
289 PRUNTIME_FUNCTION FunctionEntry
;
290 } UNWIND_HISTORY_TABLE_ENTRY
, *PUNWIND_HISTORY_TABLE_ENTRY
;
292 typedef struct _UNWIND_HISTORY_TABLE
{
297 UNWIND_HISTORY_TABLE_ENTRY Entry
[UNWIND_HISTORY_TABLE_SIZE
];
298 } UNWIND_HISTORY_TABLE
, *PUNWIND_HISTORY_TABLE
;
300 #endif /* defined(__ia64__) */
302 /***********************************************************************
303 * Types and data structures
306 /* This is used by NtQuerySystemInformation */
307 /* FIXME: Isn't THREAD_INFO and THREADINFO the same structure? */
309 FILETIME ftCreationTime
;
311 DWORD dwStartAddress
;
314 DWORD dwCurrentPriority
;
315 DWORD dwBasePriority
;
316 DWORD dwContextSwitches
;
320 } THREADINFO
, *PTHREADINFO
;
322 /* FIXME: Isn't THREAD_INFO and THREADINFO the same structure? */
323 typedef struct _THREAD_INFO
{
330 } THREAD_INFO
, PTHREAD_INFO
;
332 /***********************************************************************
333 * Types and data structures
336 typedef struct _IO_STATUS_BLOCK
{
342 ULONG_PTR Information
;
343 } IO_STATUS_BLOCK
, *PIO_STATUS_BLOCK
;
345 typedef void (WINAPI
* PIO_APC_ROUTINE
)(PVOID
,PIO_STATUS_BLOCK
,ULONG
);
347 typedef struct _KEY_BASIC_INFORMATION
{
348 LARGE_INTEGER LastWriteTime
;
352 } KEY_BASIC_INFORMATION
, *PKEY_BASIC_INFORMATION
;
354 typedef struct _KEY_NODE_INFORMATION
356 LARGE_INTEGER LastWriteTime
;
363 } KEY_NODE_INFORMATION
, *PKEY_NODE_INFORMATION
;
365 typedef struct _KEY_FULL_INFORMATION
367 LARGE_INTEGER LastWriteTime
;
375 ULONG MaxValueNameLen
;
376 ULONG MaxValueDataLen
;
378 } KEY_FULL_INFORMATION
, *PKEY_FULL_INFORMATION
;
380 typedef struct _KEY_VALUE_ENTRY
382 PUNICODE_STRING ValueName
;
386 } KEY_VALUE_ENTRY
, *PKEY_VALUE_ENTRY
;
388 typedef struct _KEY_VALUE_BASIC_INFORMATION
{
393 } KEY_VALUE_BASIC_INFORMATION
, *PKEY_VALUE_BASIC_INFORMATION
;
395 typedef struct _KEY_VALUE_FULL_INFORMATION
{
402 } KEY_VALUE_FULL_INFORMATION
, *PKEY_VALUE_FULL_INFORMATION
;
404 typedef struct _KEY_VALUE_PARTIAL_INFORMATION
{
409 } KEY_VALUE_PARTIAL_INFORMATION
, *PKEY_VALUE_PARTIAL_INFORMATION
;
411 typedef struct _OBJECT_ATTRIBUTES
{
413 HANDLE RootDirectory
;
414 PUNICODE_STRING ObjectName
;
416 PVOID SecurityDescriptor
; /* type SECURITY_DESCRIPTOR */
417 PVOID SecurityQualityOfService
; /* type SECURITY_QUALITY_OF_SERVICE */
418 } OBJECT_ATTRIBUTES
, *POBJECT_ATTRIBUTES
;
420 typedef struct _PROCESS_BASIC_INFORMATION
{
423 DWORD PebBaseAddress
;
426 ULONG UniqueProcessId
;
427 ULONG InheritedFromUniqueProcessId
;
432 ULONG_PTR UniqueProcessId
;
435 } PROCESS_BASIC_INFORMATION
, *PPROCESS_BASIC_INFORMATION
;
437 typedef struct _PROCESS_INFO
{
438 DWORD Offset
; /* 00 offset to next PROCESS_INFO ok*/
439 DWORD ThreadCount
; /* 04 number of ThreadInfo member ok */
441 FILETIME CreationTime
; /* 20 */
443 PWCHAR ProcessName
; /* 3c ok */
445 DWORD ProcessID
; /* 44 ok*/
446 DWORD ParentProcessID
;
448 DWORD Unknown3
[2]; /* 50 */
449 ULONG PeakVirtualSize
;
451 ULONG PageFaultCount
;
452 ULONG PeakWorkingSetSize
;
453 ULONG WorkingSetSize
;
454 ULONG QuotaPeakPagedPoolUsage
;
455 ULONG QuotaPagedPoolUsage
;
456 ULONG QuotaPeakNonPagedPoolUsage
;
457 ULONG QuotaNonPagedPoolUsage
;
459 ULONG PeakPagefileUsage
;
462 THREAD_INFO ati
[ANYSIZE_ARRAY
]; /* 94 size=0x40*/
463 } PROCESS_INFO
, PPROCESS_INFO
;
465 typedef struct _RTL_HEAP_DEFINITION
{
466 ULONG Length
; /* = sizeof(RTL_HEAP_DEFINITION) */
469 } RTL_HEAP_DEFINITION
, *PRTL_HEAP_DEFINITION
;
471 typedef struct tagRTL_BITMAP
{
472 ULONG SizeOfBitMap
; /* Number of bits in the bitmap */
473 LPBYTE BitMapBuffer
; /* Bitmap data, assumed sized to a DWORD boundary */
474 } RTL_BITMAP
, *PRTL_BITMAP
;
476 typedef const RTL_BITMAP
*PCRTL_BITMAP
;
478 typedef struct tagRTL_BITMAP_RUN
{
479 ULONG StartOfRun
; /* Bit position at which run starts - FIXME: Name? */
480 ULONG SizeOfRun
; /* Size of the run in bits - FIXME: Name? */
481 } RTL_BITMAP_RUN
, *PRTL_BITMAP_RUN
;
483 typedef const RTL_BITMAP_RUN
*PCRTL_BITMAP_RUN
;
485 typedef struct _RTL_RWLOCK
{
486 RTL_CRITICAL_SECTION rtlCS
;
488 HANDLE hSharedReleaseSemaphore
;
491 HANDLE hExclusiveReleaseSemaphore
;
492 UINT uExclusiveWaiters
;
495 HANDLE hOwningThreadId
;
496 DWORD dwTimeoutBoost
;
498 } RTL_RWLOCK
, *LPRTL_RWLOCK
;
500 /* System Information Class 0x00 */
501 typedef struct _SYSTEM_BASIC_INFORMATION
{
504 ULONG uKeMaximumIncrement
;
506 ULONG uMmNumberOfPhysicalPages
;
507 ULONG uMmLowestPhysicalPage
;
508 ULONG uMmHighestPhysicalPage
;
509 ULONG uAllocationGranularity
;
510 PVOID pLowestUserAddress
;
511 PVOID pMmHighestUserAddress
;
512 ULONG uKeActiveProcessors
;
513 BYTE bKeNumberProcessors
;
519 CCHAR NumberOfProcessors
;
521 } SYSTEM_BASIC_INFORMATION
, *PSYSTEM_BASIC_INFORMATION
;
523 /* System Information Class 0x15 */
527 ULONG PageFaultCount
;
528 ULONG MinimumWorkingSet
;
529 ULONG MaximumWorkingSet
;
531 } SYSTEM_CACHE_INFORMATION
;
533 typedef struct _SYSTEM_CONFIGURATION_INFO
{
537 WORD ProcessorArchitecture
;
542 PVOID MinimumApplicationAddress
;
543 PVOID MaximumApplicationAddress
;
544 ULONG ActiveProcessorMask
;
545 ULONG NumberOfProcessors
;
547 ULONG AllocationGranularity
;
549 WORD ProcessorRevision
;
550 } SYSTEM_CONFIGURATION_INFO
, *PSYSTEM_CONFIGURATION_INFO
;
552 /* System Information Class 0x0b */
559 char szName
[MAX_PATH
+ 1];
560 } SYSTEM_DRIVER_INFORMATION
;
562 typedef struct _SYSTEM_EXCEPTION_INFORMATION
{
564 } SYSTEM_EXCEPTION_INFORMATION
, *PSYSTEM_EXCEPTION_INFORMATION
;
566 typedef struct _SYSTEM_LOOKASIDE_INFORMATION
{
568 } SYSTEM_LOOKASIDE_INFORMATION
, *PSYSTEM_LOOKASIDE_INFORMATION
;
570 typedef struct _SYSTEM_INTERRUPT_INFORMATION
{
572 } SYSTEM_INTERRUPT_INFORMATION
, *PSYSTEM_INTERRUPT_INFORMATION
;
574 /* System Information Class 0x10 */
577 USHORT dwCreatorBackTraceIndex
;
579 BYTE bHandleAttributes
;
580 USHORT usHandleOffset
;
582 ULONG ulGrantedAccess
;
583 } HANDLEINFO
, *PHANDLEINFO
; /* FIXME: SYSTEM_HANDLE_INFORMATION? */
585 typedef struct _SYSTEM_PERFORMANCE_INFORMATION
{
587 } SYSTEM_PERFORMANCE_INFORMATION
, *PSYSTEM_PERFORMANCE_INFORMATION
;
589 /* System Information Class 0x02 */
590 typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
{
592 LARGE_INTEGER liIdleTime
;
595 LARGE_INTEGER IdleTime
;
596 LARGE_INTEGER KernelTime
;
597 LARGE_INTEGER UserTime
;
598 LARGE_INTEGER Reserved1
[2];
601 } SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
;
603 /* System Information Class 0x05 */
604 typedef struct _SYSTEM_PROCESS_INFORMATION
{
609 FILETIME ftCreationTime
;
611 WCHAR
*pszProcessName
;
612 DWORD dwBasePriority
;
614 DWORD dwParentProcessID
;
618 DWORD dwVirtualBytesPeak
;
619 DWORD dwVirtualBytes
;
621 DWORD dwWorkingSetPeak
;
626 DWORD dwNonPagedPool
;
627 DWORD dwPageFileBytesPeak
;
628 DWORD dwPrivateBytes
;
629 DWORD dwPageFileBytes
;
633 ULONG NextEntryOffset
;
636 HANDLE UniqueProcessId
;
641 SIZE_T PeakPagefileUsage
;
642 SIZE_T PrivatePageCount
;
643 LARGE_INTEGER Reserved6
[6];
645 } SYSTEM_PROCESS_INFORMATION
, *PSYSTEM_PROCESS_INFORMATION
;
647 typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION
{
648 ULONG RegistryQuotaAllowed
;
649 ULONG RegistryQuotaUsed
;
651 } SYSTEM_REGISTRY_QUOTA_INFORMATION
, *PSYSTEM_REGISTRY_QUOTA_INFORMATION
;
653 typedef struct _SYSTEM_TIME_ADJUSTMENT
{
654 ULONG TimeAdjustment
;
655 BOOLEAN TimeAdjustmentDisabled
;
656 } SYSTEM_TIME_ADJUSTMENT
, *PSYSTEM_TIME_ADJUSTMENT
;
658 /* System Information Class 0x03 */
659 typedef struct _SYSTEM_TIMEOFDAY_INFORMATION
{
661 LARGE_INTEGER liKeBootTime
;
662 LARGE_INTEGER liKeSystemTime
;
663 LARGE_INTEGER liExpTimeZoneBias
;
664 ULONG uCurrentTimeZoneId
;
669 } SYSTEM_TIMEOFDAY_INFORMATION
, *PSYSTEM_TIMEOFDAY_INFORMATION
; /* was SYSTEM_TIME_INFORMATION */
671 typedef struct _TIME_FIELDS
680 } TIME_FIELDS
, *PTIME_FIELDS
;
682 typedef struct _WINSTATIONINFORMATIONW
{
685 BYTE Reserved3
[1140];
686 } WINSTATIONINFORMATIONW
, *PWINSTATIONINFORMATIONW
;
688 typedef struct _VM_COUNTERS_
{
689 ULONG PeakVirtualSize
;
691 ULONG PageFaultCount
;
692 ULONG PeakWorkingSetSize
;
693 ULONG WorkingSetSize
;
694 ULONG QuotaPeakPagedPoolUsage
;
695 ULONG QuotaPagedPoolUsage
;
696 ULONG QuotaPeakNonPagedPoolUsage
;
697 ULONG QuotaNonPagedPoolUsage
;
699 ULONG PeakPagefileUsage
;
700 } VM_COUNTERS
, *PVM_COUNTERS
;
702 typedef BOOLEAN (WINAPI
* PWINSTATIONQUERYINFORMATIONW
)(HANDLE
,ULONG
,WINSTATIONINFOCLASS
,PVOID
,ULONG
,PULONG
);
704 /***********************************************************************
708 /* flags for NtCreateFile and NtOpenFile */
709 #define FILE_DIRECTORY_FLAG 0x00000001
710 #define FILE_WRITE_THROUGH 0x00000002
711 #define FILE_SEQUENTIAL_ONLY 0x00000004
712 #define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008
713 #define FILE_SYNCHRONOUS_IO_ALERT 0x00000010
714 #define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
715 #define FILE_NON_DIRECTORY_FILE 0x00000040
716 #define FILE_CREATE_TREE_CONNECTION 0x00000080
718 /* status for NtCreateFile or NtOpenFile */
719 #define FILE_SUPERSEDED 0x00000000
720 #define FILE_OPENED 0x00000001
721 #define FILE_CREATED 0x00000002
722 #define FILE_OVERWRITTEN 0x00000003
723 #define FILE_EXISTS 0x00000004
724 #define FILE_DOES_NOT_EXIST 0x00000005
726 #if (_WIN32_WINNT >= 0x0501)
727 #define INTERNAL_TS_ACTIVE_CONSOLE_ID ( *((volatile ULONG*)(0x7ffe02d8)) )
728 #endif /* (_WIN32_WINNT >= 0x0501) */
730 #define LOGONID_CURRENT ((ULONG)-1)
732 #define OBJ_INHERIT 0x00000002L
733 #define OBJ_PERMANENT 0x00000010L
734 #define OBJ_EXCLUSIVE 0x00000020L
735 #define OBJ_CASE_INSENSITIVE 0x00000040L
736 #define OBJ_OPENIF 0x00000080L
737 #define OBJ_OPENLINK 0x00000100L
738 #define OBJ_KERNEL_HANDLE 0x00000200L
739 #define OBJ_VALID_ATTRIBUTES 0x000003F2L
741 #define SERVERNAME_CURRENT ((HANDLE)NULL)
743 /***********************************************************************
744 * Function declarations
747 extern LPSTR
_strlwr(LPSTR str
); /* FIXME: Doesn't belong here */
748 extern LPSTR
_strupr(LPSTR str
); /* FIXME: Doesn't belong here */
750 #if defined(__i386__) && defined(__GNUC__)
751 static inline void WINAPI
DbgBreakPoint(void) { __asm__
__volatile__("int3"); }
752 static inline void WINAPI
DbgUserBreakPoint(void) { __asm__
__volatile__("int3"); }
753 #else /* __i386__ && __GNUC__ */
754 void WINAPI
DbgBreakPoint(void);
755 void WINAPI
DbgUserBreakPoint(void);
756 #endif /* __i386__ && __GNUC__ */
757 void WINAPIV
DbgPrint(LPCSTR fmt
, ...);
759 NTSTATUS WINAPI
NtAccessCheck(PSECURITY_DESCRIPTOR
,HANDLE
,ACCESS_MASK
,PGENERIC_MAPPING
,PPRIVILEGE_SET
,PULONG
,PULONG
,PBOOLEAN
);
760 NTSTATUS WINAPI
NtAdjustPrivilegesToken(HANDLE
,BOOLEAN
,PTOKEN_PRIVILEGES
,DWORD
,PTOKEN_PRIVILEGES
,PDWORD
);
761 NTSTATUS WINAPI
NtAllocateVirtualMemory(HANDLE
,PVOID
*,PVOID
,ULONG
*,ULONG
,ULONG
);
762 NTSTATUS WINAPI
NtClearEvent(HANDLE
);
763 NTSTATUS WINAPI
NtClose(HANDLE
);
764 NTSTATUS WINAPI
NtCreateEvent(PHANDLE
,ACCESS_MASK
,const OBJECT_ATTRIBUTES
*,BOOLEAN
,BOOLEAN
);
765 NTSTATUS WINAPI
NtCreateFile(PHANDLE
,ACCESS_MASK
,POBJECT_ATTRIBUTES
,PIO_STATUS_BLOCK
,PLARGE_INTEGER
,ULONG
,ULONG
,ULONG
,ULONG
,PVOID
,ULONG
);
766 NTSTATUS WINAPI
NtCreateKey(PHANDLE
,ACCESS_MASK
,const OBJECT_ATTRIBUTES
*,ULONG
,const UNICODE_STRING
*,ULONG
,PULONG
);
767 NTSTATUS WINAPI
NtCreateSection(HANDLE
*,ACCESS_MASK
,const OBJECT_ATTRIBUTES
*,const LARGE_INTEGER
*,ULONG
,ULONG
,HANDLE
);
768 NTSTATUS WINAPI
NtCreateSemaphore(PHANDLE
,ACCESS_MASK
,const OBJECT_ATTRIBUTES
*,ULONG
,ULONG
);
769 NTSTATUS WINAPI
NtDeleteKey(HANDLE
);
770 NTSTATUS WINAPI
NtDeleteValueKey(HANDLE
,const UNICODE_STRING
*);
771 NTSTATUS WINAPI
NtDeviceIoControlFile(HANDLE
,HANDLE
,PIO_APC_ROUTINE
,PVOID
,PIO_STATUS_BLOCK
,ULONG
,PVOID
,ULONG
,PVOID
,ULONG
);
772 NTSTATUS WINAPI
NtDuplicateObject(HANDLE
,HANDLE
,HANDLE
,PHANDLE
,ACCESS_MASK
,ULONG
,ULONG
);
773 NTSTATUS WINAPI
NtEnumerateKey(HANDLE
,ULONG
,KEY_INFORMATION_CLASS
,void *,DWORD
,DWORD
*);
774 NTSTATUS WINAPI
NtEnumerateValueKey(HANDLE
,ULONG
,KEY_VALUE_INFORMATION_CLASS
,PVOID
,ULONG
,PULONG
);
775 NTSTATUS WINAPI
NtFlushKey(HANDLE
);
776 NTSTATUS WINAPI
NtFlushVirtualMemory(HANDLE
,LPCVOID
*,ULONG
*,ULONG
);
777 NTSTATUS WINAPI
NtFreeVirtualMemory(HANDLE
,PVOID
*,ULONG
*,ULONG
);
778 NTSTATUS WINAPI
NtLoadKey(const OBJECT_ATTRIBUTES
*,const OBJECT_ATTRIBUTES
*);
779 NTSTATUS WINAPI
NtLockVirtualMemory(HANDLE
,PVOID
*,ULONG
*,ULONG
);
780 NTSTATUS WINAPI
NtMapViewOfSection(HANDLE
,HANDLE
,PVOID
*,ULONG
,ULONG
,const LARGE_INTEGER
*,ULONG
*,SECTION_INHERIT
,ULONG
,ULONG
);
781 NTSTATUS WINAPI
NtNotifyChangeKey(HANDLE
,HANDLE
,PIO_APC_ROUTINE
,PVOID
,PIO_STATUS_BLOCK
,ULONG
,BOOLEAN
,PVOID
,ULONG
,BOOLEAN
);
782 NTSTATUS WINAPI
NtOpenEvent(PHANDLE
,ACCESS_MASK
,const OBJECT_ATTRIBUTES
*);
783 NTSTATUS WINAPI
NtOpenFile(PHANDLE
,ACCESS_MASK
,POBJECT_ATTRIBUTES
,PIO_STATUS_BLOCK
,ULONG
,ULONG
);
784 NTSTATUS WINAPI
NtOpenKey(PHANDLE
,ACCESS_MASK
,const OBJECT_ATTRIBUTES
*);
785 NTSTATUS WINAPI
NtOpenProcessToken(HANDLE
,DWORD
,HANDLE
*);
786 NTSTATUS WINAPI
NtOpenSection(HANDLE
*,ACCESS_MASK
,const OBJECT_ATTRIBUTES
*);
787 NTSTATUS WINAPI
NtOpenThreadToken(HANDLE
,DWORD
,BOOLEAN
,HANDLE
*);
788 NTSTATUS WINAPI
NtProtectVirtualMemory(HANDLE
,PVOID
*,ULONG
*,ULONG
,ULONG
*);
789 NTSTATUS WINAPI
NtPulseEvent(HANDLE
,PULONG
);
790 NTSTATUS WINAPI
NtQueryInformationProcess(HANDLE
,PROCESSINFOCLASS
,PVOID
,ULONG
,PULONG
);
791 NTSTATUS WINAPI
NtQueryInformationThread(HANDLE
,THREADINFOCLASS
,PVOID
,ULONG
,PULONG
);
792 NTSTATUS WINAPI
NtQueryInformationToken(HANDLE
,DWORD
,LPVOID
,DWORD
,LPDWORD
);
793 NTSTATUS WINAPI
NtQueryKey(HANDLE
,KEY_INFORMATION_CLASS
,void *,DWORD
,DWORD
*);
794 NTSTATUS WINAPI
NtQueryMultipleValueKey(HANDLE
,PVALENTW
,ULONG
,PVOID
,ULONG
,PULONG
);
795 NTSTATUS WINAPI
NtQuerySecurityObject(HANDLE
,SECURITY_INFORMATION
,PSECURITY_DESCRIPTOR
,ULONG
,PULONG
);
796 NTSTATUS WINAPI
NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS
,PVOID
,ULONG
,PULONG
);
797 NTSTATUS WINAPI
NtQuerySystemTime(PLARGE_INTEGER
);
798 NTSTATUS WINAPI
NtQueryValueKey(HANDLE
,const UNICODE_STRING
*,KEY_VALUE_INFORMATION_CLASS
,void *,DWORD
,DWORD
*);
799 NTSTATUS WINAPI
NtQueryVirtualMemory(HANDLE
,LPCVOID
,MEMORY_INFORMATION_CLASS
,PVOID
,ULONG
,ULONG
*);
800 void WINAPI
NtRaiseException(PEXCEPTION_RECORD
,PCONTEXT
,BOOL
);
801 NTSTATUS WINAPI
NtReadFile(HANDLE
,HANDLE
,PIO_APC_ROUTINE
,PVOID
,PIO_STATUS_BLOCK
,PVOID
,ULONG
,PLARGE_INTEGER
,PULONG
);
802 NTSTATUS WINAPI
NtReleaseSemaphore(HANDLE
,ULONG
,PULONG
);
803 NTSTATUS WINAPI
NtResetEvent(HANDLE
,PULONG
);
804 NTSTATUS WINAPI
NtRestoreKey(HANDLE
,HANDLE
,ULONG
);
805 NTSTATUS WINAPI
NtReplaceKey(POBJECT_ATTRIBUTES
,HANDLE
,POBJECT_ATTRIBUTES
);
806 NTSTATUS WINAPI
NtSaveKey(HANDLE
,HANDLE
);
807 NTSTATUS WINAPI
NtSetEvent(HANDLE
,PULONG
);
808 NTSTATUS WINAPI
NtSetInformationKey(HANDLE
,const int,PVOID
,ULONG
);
809 NTSTATUS WINAPI
NtSetSecurityObject(HANDLE
,SECURITY_INFORMATION
,PSECURITY_DESCRIPTOR
);
810 NTSTATUS WINAPI
NtSetValueKey(HANDLE
,const UNICODE_STRING
*,ULONG
,ULONG
,const void *,ULONG
);
811 NTSTATUS WINAPI
NtTerminateProcess(HANDLE
,LONG
);
812 NTSTATUS WINAPI
NtTerminateThread(HANDLE
,LONG
);
813 NTSTATUS WINAPI
NtUnloadKey(HANDLE
);
814 NTSTATUS WINAPI
NtUnlockVirtualMemory(HANDLE
,PVOID
*,ULONG
*,ULONG
);
815 NTSTATUS WINAPI
NtUnmapViewOfSection(HANDLE
,PVOID
);
816 NTSTATUS WINAPI
NtWaitForSingleObject(HANDLE
,BOOLEAN
,PLARGE_INTEGER
);
818 void WINAPI
RtlAcquirePebLock(void);
819 BYTE WINAPI
RtlAcquireResourceExclusive(LPRTL_RWLOCK
,BYTE
);
820 BYTE WINAPI
RtlAcquireResourceShared(LPRTL_RWLOCK
,BYTE
);
821 NTSTATUS WINAPI
RtlAddAce(PACL
,DWORD
,DWORD
,PACE_HEADER
,DWORD
);
822 BOOL WINAPI
RtlAddAccessAllowedAce(PACL
,DWORD
,DWORD
,PSID
);
823 BOOL WINAPI
RtlAddAccessAllowedAceEx(PACL
,DWORD
,DWORD
,DWORD
,PSID
);
824 DWORD WINAPI
RtlAdjustPrivilege(DWORD
,DWORD
,DWORD
,DWORD
);
825 BOOLEAN WINAPI
RtlAllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY
,BYTE
,DWORD
,DWORD
,DWORD
,DWORD
,DWORD
,DWORD
,DWORD
,DWORD
,PSID
*);
826 PVOID WINAPI
RtlAllocateHeap(HANDLE
,ULONG
,ULONG
);
827 DWORD WINAPI
RtlAnsiStringToUnicodeSize(const STRING
*);
828 NTSTATUS WINAPI
RtlAnsiStringToUnicodeString(PUNICODE_STRING
,PCANSI_STRING
,BOOLEAN
);
829 NTSTATUS WINAPI
RtlAppendAsciizToString(STRING
*,LPCSTR
);
830 NTSTATUS WINAPI
RtlAppendStringToString(STRING
*,const STRING
*);
831 NTSTATUS WINAPI
RtlAppendUnicodeStringToString(UNICODE_STRING
*,const UNICODE_STRING
*);
832 NTSTATUS WINAPI
RtlAppendUnicodeToString(UNICODE_STRING
*,LPCWSTR
);
833 BOOLEAN WINAPI
RtlAreBitsSet(PCRTL_BITMAP
,ULONG
,ULONG
);
834 BOOLEAN WINAPI
RtlAreBitsClear(PCRTL_BITMAP
,ULONG
,ULONG
);
836 NTSTATUS WINAPI
RtlCharToInteger(PCSZ
,ULONG
,PULONG
);
837 void WINAPI
RtlClearAllBits(PRTL_BITMAP
);
838 void WINAPI
RtlClearBits(PRTL_BITMAP
,ULONG
,ULONG
);
839 ULONG WINAPI
RtlCompactHeap(HANDLE
,ULONG
);
840 LONG WINAPI
RtlCompareString(const STRING
*,const STRING
*,BOOLEAN
);
841 LONG WINAPI
RtlCompareUnicodeString(const UNICODE_STRING
*,const UNICODE_STRING
*,BOOLEAN
);
842 NTSTATUS WINAPI
RtlConvertSidToUnicodeString(PUNICODE_STRING
,PSID
,BOOLEAN
);
843 LONGLONG WINAPI
RtlConvertLongToLargeInteger(LONG
);
844 ULONGLONG WINAPI
RtlConvertUlongToLargeInteger(ULONG
);
845 DWORD WINAPI
RtlCopySid(DWORD
,PSID
,PSID
);
846 void WINAPI
RtlCopyString(STRING
*,const STRING
*);
847 void WINAPI
RtlCopyUnicodeString(UNICODE_STRING
*,const UNICODE_STRING
*);
848 NTSTATUS WINAPI
RtlCreateAcl(PACL
,DWORD
,DWORD
);
849 DWORD WINAPI
RtlCreateEnvironment(DWORD
,DWORD
);
850 HANDLE WINAPI
RtlCreateHeap(ULONG
,PVOID
,ULONG
,ULONG
,PVOID
,PRTL_HEAP_DEFINITION
);
851 NTSTATUS WINAPI
RtlCreateSecurityDescriptor(PSECURITY_DESCRIPTOR
,DWORD
);
852 BOOLEAN WINAPI
RtlCreateUnicodeString(PUNICODE_STRING
,LPCWSTR
);
853 BOOLEAN WINAPI
RtlCreateUnicodeStringFromAsciiz(PUNICODE_STRING
,LPCSTR
);
855 NTSTATUS WINAPI
RtlDeleteCriticalSection(RTL_CRITICAL_SECTION
*);
856 void WINAPI
RtlDeleteResource(LPRTL_RWLOCK
);
857 DWORD WINAPI
RtlDeleteSecurityObject(DWORD
);
858 DWORD WINAPI
RtlDestroyEnvironment(DWORD
);
859 HANDLE WINAPI
RtlDestroyHeap(HANDLE
);
860 BOOLEAN WINAPI
RtlDosPathNameToNtPathName_U(LPWSTR
,PUNICODE_STRING
,DWORD
,DWORD
);
861 void WINAPI
RtlDumpResource(LPRTL_RWLOCK
);
863 LONGLONG WINAPI
RtlEnlargedIntegerMultiply(INT
,INT
);
864 ULONGLONG WINAPI
RtlEnlargedUnsignedMultiply(UINT
,UINT
);
865 UINT WINAPI
RtlEnlargedUnsignedDivide(ULONGLONG
,UINT
,UINT
*);
866 NTSTATUS WINAPI
RtlEnterCriticalSection(RTL_CRITICAL_SECTION
*);
867 void WINAPI
RtlEraseUnicodeString(UNICODE_STRING
*);
868 BOOL WINAPI
RtlEqualPrefixSid(PSID
,PSID
);
869 BOOL WINAPI
RtlEqualSid(PSID
,PSID
);
870 BOOLEAN WINAPI
RtlEqualString(const STRING
*,const STRING
*,BOOLEAN
);
871 BOOLEAN WINAPI
RtlEqualUnicodeString(const UNICODE_STRING
*,const UNICODE_STRING
*,BOOLEAN
);
872 LONGLONG WINAPI
RtlExtendedMagicDivide(LONGLONG
,LONGLONG
,INT
);
873 LONGLONG WINAPI
RtlExtendedIntegerMultiply(LONGLONG
,INT
);
874 LONGLONG WINAPI
RtlExtendedLargeIntegerDivide(LONGLONG
,INT
,INT
*);
876 ULONG WINAPI
RtlFindClearBits(PCRTL_BITMAP
,ULONG
,ULONG
);
877 ULONG WINAPI
RtlFindClearBitsAndSet(PRTL_BITMAP
,ULONG
,ULONG
);
878 ULONG WINAPI
RtlFindClearRuns(PCRTL_BITMAP
,PRTL_BITMAP_RUN
,ULONG
,BOOLEAN
);
879 ULONG WINAPI
RtlFindLastBackwardRunSet(PCRTL_BITMAP
,ULONG
,PULONG
);
880 ULONG WINAPI
RtlFindLastBackwardRunClear(PCRTL_BITMAP
,ULONG
,PULONG
);
881 CCHAR WINAPI
RtlFindLeastSignificantBit(ULONGLONG
);
882 ULONG WINAPI
RtlFindLongestRunSet(PCRTL_BITMAP
,PULONG
);
883 ULONG WINAPI
RtlFindLongestRunClear(PCRTL_BITMAP
,PULONG
);
884 CCHAR WINAPI
RtlFindMostSignificantBit(ULONGLONG
);
885 ULONG WINAPI
RtlFindNextForwardRunSet(PCRTL_BITMAP
,ULONG
,PULONG
);
886 ULONG WINAPI
RtlFindNextForwardRunClear(PCRTL_BITMAP
,ULONG
,PULONG
);
887 ULONG WINAPI
RtlFindSetBits(PCRTL_BITMAP
,ULONG
,ULONG
);
888 ULONG WINAPI
RtlFindSetBitsAndClear(PRTL_BITMAP
,ULONG
,ULONG
);
889 ULONG WINAPI
RtlFindSetRuns(PCRTL_BITMAP
,PRTL_BITMAP_RUN
,ULONG
,BOOLEAN
);
890 BOOLEAN WINAPI
RtlFirstFreeAce(PACL
,PACE_HEADER
*);
891 NTSTATUS WINAPI
RtlFormatCurrentUserKeyPath(PUNICODE_STRING
);
892 void WINAPI
RtlFreeAnsiString(PANSI_STRING
);
893 BOOLEAN WINAPI
RtlFreeHeap(HANDLE
,ULONG
,PVOID
);
894 void WINAPI
RtlFreeOemString(POEM_STRING
);
895 DWORD WINAPI
RtlFreeSid(PSID
);
896 void WINAPI
RtlFreeUnicodeString(PUNICODE_STRING
);
898 DWORD WINAPI
RtlGetAce(PACL
,DWORD
,LPVOID
*);
899 NTSTATUS WINAPI
RtlGetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR
,PBOOLEAN
,PACL
*,PBOOLEAN
);
900 NTSTATUS WINAPI
RtlGetControlSecurityDescriptor(PSECURITY_DESCRIPTOR
, PSECURITY_DESCRIPTOR_CONTROL
,LPDWORD
);
901 NTSTATUS WINAPI
RtlGetGroupSecurityDescriptor(PSECURITY_DESCRIPTOR
,PSID
*,PBOOLEAN
);
902 BOOLEAN WINAPI
RtlGetNtProductType(LPDWORD
);
903 NTSTATUS WINAPI
RtlGetOwnerSecurityDescriptor(PSECURITY_DESCRIPTOR
,PSID
*,PBOOLEAN
);
904 ULONG WINAPI
RtlGetProcessHeaps(ULONG
,HANDLE
*);
905 NTSTATUS WINAPI
RtlGetSaclSecurityDescriptor(PSECURITY_DESCRIPTOR
,PBOOLEAN
,PACL
*,PBOOLEAN
);
907 PSID_IDENTIFIER_AUTHORITY WINAPI
RtlIdentifierAuthoritySid(PSID
);
908 PVOID WINAPI
RtlImageDirectoryEntryToData(HMODULE
,BOOL
,WORD
,ULONG
*);
909 PIMAGE_NT_HEADERS WINAPI
RtlImageNtHeader(HMODULE
);
910 PIMAGE_SECTION_HEADER WINAPI
RtlImageRvaToSection(const IMAGE_NT_HEADERS
*,HMODULE
,DWORD
);
911 PVOID WINAPI
RtlImageRvaToVa(const IMAGE_NT_HEADERS
*,HMODULE
,DWORD
,IMAGE_SECTION_HEADER
**);
912 BOOL WINAPI
RtlImpersonateSelf(SECURITY_IMPERSONATION_LEVEL
);
913 void WINAPI
RtlInitString(PSTRING
,PCSZ
);
914 void WINAPI
RtlInitAnsiString(PANSI_STRING
,PCSZ
);
915 void WINAPI
RtlInitUnicodeString(PUNICODE_STRING
,PCWSTR
);
916 NTSTATUS WINAPI
RtlInitializeCriticalSection(RTL_CRITICAL_SECTION
*);
917 NTSTATUS WINAPI
RtlInitializeCriticalSectionAndSpinCount(RTL_CRITICAL_SECTION
*,DWORD
);
918 void WINAPI
RtlInitializeBitMap(PRTL_BITMAP
,LPBYTE
,ULONG
);
919 void WINAPI
RtlInitializeResource(LPRTL_RWLOCK
);
920 BOOL WINAPI
RtlInitializeSid(PSID
,PSID_IDENTIFIER_AUTHORITY
,BYTE
);
922 DWORD WINAPI
RtlIntegerToChar(DWORD
,DWORD
,DWORD
,DWORD
);
923 BOOLEAN WINAPI
RtlIsNameLegalDOS8Dot3(PUNICODE_STRING
,POEM_STRING
,PBOOLEAN
);
924 DWORD WINAPI
RtlIsTextUnicode(LPVOID
,DWORD
,DWORD
*);
926 LONGLONG WINAPI
RtlLargeIntegerAdd(LONGLONG
,LONGLONG
);
927 LONGLONG WINAPI
RtlLargeIntegerArithmeticShift(LONGLONG
,INT
);
928 ULONGLONG WINAPI
RtlLargeIntegerDivide( ULONGLONG
,ULONGLONG
,ULONGLONG
*);
929 LONGLONG WINAPI
RtlLargeIntegerNegate(LONGLONG
);
930 LONGLONG WINAPI
RtlLargeIntegerShiftLeft(LONGLONG
,INT
);
931 LONGLONG WINAPI
RtlLargeIntegerShiftRight(LONGLONG
,INT
);
932 LONGLONG WINAPI
RtlLargeIntegerSubtract(LONGLONG
,LONGLONG
);
933 NTSTATUS WINAPI
RtlLeaveCriticalSection(RTL_CRITICAL_SECTION
*);
934 DWORD WINAPI
RtlLengthRequiredSid(DWORD
);
935 ULONG WINAPI
RtlLengthSecurityDescriptor(PSECURITY_DESCRIPTOR
);
936 DWORD WINAPI
RtlLengthSid(PSID
);
937 NTSTATUS WINAPI
RtlLocalTimeToSystemTime(PLARGE_INTEGER
,PLARGE_INTEGER
);
938 BOOLEAN WINAPI
RtlLockHeap(HANDLE
);
940 NTSTATUS WINAPI
RtlMakeSelfRelativeSD(PSECURITY_DESCRIPTOR
,PSECURITY_DESCRIPTOR
,LPDWORD
);
941 NTSTATUS WINAPI
RtlMultiByteToUnicodeN(LPWSTR
,DWORD
,LPDWORD
,LPCSTR
,DWORD
);
942 NTSTATUS WINAPI
RtlMultiByteToUnicodeSize(DWORD
*,LPCSTR
,UINT
);
944 DWORD WINAPI
RtlNewSecurityObject(DWORD
,DWORD
,DWORD
,DWORD
,DWORD
,DWORD
);
945 LPVOID WINAPI
RtlNormalizeProcessParams(LPVOID
);
946 ULONG WINAPI
RtlNtStatusToDosError(NTSTATUS
);
947 ULONG WINAPI
RtlNumberOfSetBits(PCRTL_BITMAP
);
948 ULONG WINAPI
RtlNumberOfClearBits(PCRTL_BITMAP
);
950 UINT WINAPI
RtlOemStringToUnicodeSize(const STRING
*);
951 NTSTATUS WINAPI
RtlOemStringToUnicodeString(UNICODE_STRING
*,const STRING
*,BOOLEAN
);
952 NTSTATUS WINAPI
RtlOemToUnicodeN(LPWSTR
,DWORD
,LPDWORD
,LPCSTR
,DWORD
);
953 DWORD WINAPI
RtlOpenCurrentUser(ACCESS_MASK
,PHANDLE
);
955 BOOLEAN WINAPI
RtlPrefixString(const STRING
*,const STRING
*,BOOLEAN
);
956 BOOLEAN WINAPI
RtlPrefixUnicodeString(const UNICODE_STRING
*,const UNICODE_STRING
*,BOOLEAN
);
958 DWORD WINAPI
RtlQueryEnvironmentVariable_U(DWORD
,PUNICODE_STRING
,PUNICODE_STRING
) ;
960 void WINAPI
RtlRaiseException(PEXCEPTION_RECORD
);
961 void WINAPI
RtlRaiseStatus(NTSTATUS
);
962 PVOID WINAPI
RtlReAllocateHeap(HANDLE
,ULONG
,PVOID
,ULONG
);
963 void WINAPI
RtlReleasePebLock(void);
964 void WINAPI
RtlReleaseResource(LPRTL_RWLOCK
);
966 void WINAPI
RtlSecondsSince1970ToTime(DWORD
,LARGE_INTEGER
*);
967 void WINAPI
RtlSecondsSince1980ToTime(DWORD
,LARGE_INTEGER
*);
968 void WINAPI
RtlSetAllBits(PRTL_BITMAP
);
969 void WINAPI
RtlSetBits(PRTL_BITMAP
,ULONG
,ULONG
);
970 NTSTATUS WINAPI
RtlSetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR
,BOOLEAN
,PACL
,BOOLEAN
);
971 DWORD WINAPI
RtlSetEnvironmentVariable(DWORD
,PUNICODE_STRING
,PUNICODE_STRING
);
972 NTSTATUS WINAPI
RtlSetOwnerSecurityDescriptor(PSECURITY_DESCRIPTOR
,PSID
,BOOLEAN
);
973 NTSTATUS WINAPI
RtlSetGroupSecurityDescriptor(PSECURITY_DESCRIPTOR
,PSID
,BOOLEAN
);
974 NTSTATUS WINAPI
RtlSetSaclSecurityDescriptor(PSECURITY_DESCRIPTOR
,BOOLEAN
,PACL
,BOOLEAN
);
975 ULONG WINAPI
RtlSizeHeap(HANDLE
,ULONG
,PVOID
);
976 LPDWORD WINAPI
RtlSubAuthoritySid(PSID
,DWORD
);
977 LPBYTE WINAPI
RtlSubAuthorityCountSid(PSID
);
978 void WINAPI
RtlSystemTimeToLocalTime(PLARGE_INTEGER
,PLARGE_INTEGER
);
980 void WINAPI
RtlTimeToTimeFields(PLARGE_INTEGER
,PTIME_FIELDS
);
981 BOOLEAN WINAPI
RtlTimeFieldsToTime(PTIME_FIELDS
,PLARGE_INTEGER
);
982 void WINAPI
RtlTimeToElapsedTimeFields(PLARGE_INTEGER
,PTIME_FIELDS
);
983 BOOLEAN WINAPI
RtlTimeToSecondsSince1970(const LARGE_INTEGER
*,PULONG
);
984 BOOLEAN WINAPI
RtlTimeToSecondsSince1980(const LARGE_INTEGER
*,LPDWORD
);
985 BOOL WINAPI
RtlTryEnterCriticalSection(RTL_CRITICAL_SECTION
*);
987 DWORD WINAPI
RtlUnicodeStringToAnsiSize(const UNICODE_STRING
*);
988 NTSTATUS WINAPI
RtlUnicodeStringToAnsiString(PANSI_STRING
,PCUNICODE_STRING
,BOOLEAN
);
989 DWORD WINAPI
RtlUnicodeStringToOemSize(const UNICODE_STRING
*);
990 NTSTATUS WINAPI
RtlUnicodeStringToOemString(POEM_STRING
,PCUNICODE_STRING
,BOOLEAN
);
991 NTSTATUS WINAPI
RtlUnicodeToMultiByteN(LPSTR
,DWORD
,LPDWORD
,LPCWSTR
,DWORD
);
992 NTSTATUS WINAPI
RtlUnicodeToMultiByteSize(PULONG
,PCWSTR
,ULONG
);
993 NTSTATUS WINAPI
RtlUnicodeToOemN(LPSTR
,DWORD
,LPDWORD
,LPCWSTR
,DWORD
);
994 ULONG WINAPI
RtlUniform(PULONG
);
995 BOOLEAN WINAPI
RtlUnlockHeap(HANDLE
);
996 void WINAPI
RtlUnwind(PVOID
,PVOID
,PEXCEPTION_RECORD
,PVOID
);
998 void WINAPI
RtlUnwind2(FRAME_POINTERS
,PVOID
,PEXCEPTION_RECORD
,PVOID
,PCONTEXT
);
999 void WINAPI
RtlUnwindEx(FRAME_POINTERS
,PVOID
,PEXCEPTION_RECORD
,PVOID
,PCONTEXT
,PUNWIND_HISTORY_TABLE
);
1001 NTSTATUS WINAPI
RtlUpcaseUnicodeString(UNICODE_STRING
*,const UNICODE_STRING
*,BOOLEAN
);
1002 NTSTATUS WINAPI
RtlUpcaseUnicodeStringToAnsiString(STRING
*,const UNICODE_STRING
*,BOOLEAN
);
1003 NTSTATUS WINAPI
RtlUpcaseUnicodeStringToOemString(STRING
*,const UNICODE_STRING
*,BOOLEAN
);
1004 NTSTATUS WINAPI
RtlUpcaseUnicodeToMultiByteN(LPSTR
,DWORD
,LPDWORD
,LPCWSTR
,DWORD
);
1005 NTSTATUS WINAPI
RtlUpcaseUnicodeToOemN(LPSTR
,DWORD
,LPDWORD
,LPCWSTR
,DWORD
);
1007 NTSTATUS WINAPI
RtlValidSecurityDescriptor(PSECURITY_DESCRIPTOR
);
1008 BOOL WINAPI
RtlValidSid(PSID
);
1009 BOOLEAN WINAPI
RtlValidateHeap(HANDLE
,ULONG
,LPCVOID
);
1011 NTSTATUS WINAPI
RtlWalkHeap(HANDLE
,PVOID
);
1013 NTSTATUS WINAPI
RtlpWaitForCriticalSection(RTL_CRITICAL_SECTION
*);
1014 NTSTATUS WINAPI
RtlpUnWaitCriticalSection(RTL_CRITICAL_SECTION
*);
1016 /***********************************************************************
1020 #define InitializeObjectAttributes(p,n,a,r,s) \
1022 (p)->Length = sizeof(OBJECT_ATTRIBUTES); \
1023 (p)->RootDirectory = r; \
1024 (p)->Attributes = a; \
1025 (p)->ObjectName = n; \
1026 (p)->SecurityDescriptor = s; \
1027 (p)->SecurityQualityOfService = NULL; \
1030 #define NtCurrentProcess() ((HANDLE)-1)
1032 #define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length))
1033 #define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length))
1034 #define RtlStoreUlong(p,v) do { ULONG _v = (v); memcpy((p), &_v, sizeof(_v)); } while (0)
1035 #define RtlStoreUlonglong(p,v) do { ULONGLONG _v = (v); memcpy((p), &_v, sizeof(_v)); } while (0)
1036 #define RtlRetrieveUlong(p,s) memcpy((p), (s), sizeof(ULONG))
1037 #define RtlRetrieveUlonglong(p,s) memcpy((p), (s), sizeof(ULONGLONG))
1038 #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length))
1040 inline static BOOLEAN
RtlCheckBit(PCRTL_BITMAP lpBits
, ULONG ulBit
)
1042 if (lpBits
&& ulBit
< lpBits
->SizeOfBitMap
&&
1043 lpBits
->BitMapBuffer
[ulBit
>> 3] & (1 << (ulBit
& 7)))
1048 #define RtlClearAllBits(p) \
1050 PRTL_BITMAP _p = (p); \
1051 memset(_p->BitMapBuffer,0,((_p->SizeOfBitMap + 31) & 0xffffffe0) >> 3); \
1054 #define RtlInitializeBitMap(p,b,s) \
1056 PRTL_BITMAP _p = (p); \
1057 _p->SizeOfBitMap = (s); \
1058 _p->BitMapBuffer = (b); \
1061 #define RtlSetAllBits(p) \
1063 PRTL_BITMAP _p = (p); \
1064 memset(_p->BitMapBuffer,0xff,((_p->SizeOfBitMap + 31) & 0xffffffe0) >> 3); \
1069 #endif /* defined(__cplusplus) */
1071 #endif /* __WINE_WINTERNAL_H */