source: trunk/src/NTDLL/ntdll.h@ 5280

Last change on this file since 5280 was 4059, checked in by phaller, 25 years ago

Fix of broken build due to WINE sync

File size: 18.1 KB
Line 
1/* $Id: ntdll.h,v 1.12 2000-08-20 15:16:57 phaller Exp $ */
2
3/*
4 this file defines interfaces mainly exposed to device drivers and
5 native nt dll's
6
7*/
8#ifndef __WINE_NTDDK_H
9#define __WINE_NTDDK_H
10
11#include <os2win.h>
12#include <misc.h>
13
14#include <ntdef.h>
15#include <winnt.h>
16#include "winbase.h" /* fixme: should be taken out sometimes */
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22
23/* Win32 register functions */
24// @@@PH what does GCC with this ?
25#define REGS_FUNC(name) __regs_##name
26
27
28/****************************************************************************
29 * adjust WINE header to ODIN *
30 ****************************************************************************/
31
32#ifdef NTAPI
33# undef NTAPI
34#endif
35#define NTAPI WIN32API
36
37#ifdef WINAPI
38# undef WINAPI
39#endif
40#define WINAPI WIN32API
41
42#ifndef BOOLEAN
43# define BOOLEAN BOOL
44#endif
45
46
47//SvL: Internal heap allocation definitions for NTDLL
48extern HANDLE NTDLL_hHeap;
49#define Heap_Alloc(a) HeapAlloc(NTDLL_hHeap, HEAP_ZERO_MEMORY, a)
50#define Heap_Free(a) HeapFree(NTDLL_hHeap, 0, (PVOID)a)
51
52typedef struct _IO_STATUS_BLOCK
53{ union
54 { NTSTATUS Status;
55 PVOID Pointer;
56 } u;
57 ULONG_PTR Information;
58} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
59
60// @@@PH - this seems to be wrong in WINE
61// typedef VOID (NTAPI* PIO_APC_ROUTINE) ( PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG Reserved );
62typedef PVOID PIO_APC_ROUTINE;
63
64typedef enum _KEY_INFORMATION_CLASS {
65 KeyBasicInformation,
66 KeyNodeInformation,
67 KeyFullInformation
68} KEY_INFORMATION_CLASS;
69
70typedef enum _KEY_VALUE_INFORMATION_CLASS {
71 KeyValueBasicInformation,
72 KeyValueFullInformation,
73 KeyValuePartialInformation,
74 KeyValueFullInformationAlign64,
75 KeyValuePartialInformationAlign64
76} KEY_VALUE_INFORMATION_CLASS;
77
78typedef enum _THREADINFOCLASS
79{ ThreadBasicInformation,
80 ThreadTimes,
81 ThreadPriority,
82 ThreadBasePriority,
83 ThreadAffinityMask,
84 ThreadImpersonationToken,
85 ThreadDescriptorTableEntry,
86 ThreadEnableAlignmentFaultFixup,
87 ThreadEventPair_Reusable,
88 ThreadQuerySetWin32StartAddress,
89 ThreadZeroTlsCell,
90 ThreadPerformanceCount,
91 ThreadAmILastThread,
92 ThreadIdealProcessor,
93 ThreadPriorityBoost,
94 ThreadSetTlsArrayAddress,
95 ThreadIsIoPending,
96 MaxThreadInfoClass
97} THREADINFOCLASS;
98
99typedef enum _FILE_INFORMATION_CLASS {
100 FileDirectoryInformation = 1,
101 FileFullDirectoryInformation,
102 FileBothDirectoryInformation,
103 FileBasicInformation,
104 FileStandardInformation,
105 FileInternalInformation,
106 FileEaInformation,
107 FileAccessInformation,
108 FileNameInformation,
109 FileRenameInformation,
110 FileLinkInformation,
111 FileNamesInformation,
112 FileDispositionInformation,
113 FilePositionInformation,
114 FileFullEaInformation,
115 FileModeInformation,
116 FileAlignmentInformation,
117 FileAllInformation,
118 FileAllocationInformation,
119 FileEndOfFileInformation,
120 FileAlternateNameInformation,
121 FileStreamInformation,
122 FilePipeInformation,
123 FilePipeLocalInformation,
124 FilePipeRemoteInformation,
125 FileMailslotQueryInformation,
126 FileMailslotSetInformation,
127 FileCompressionInformation,
128 FileObjectIdInformation,
129 FileCompletionInformation,
130 FileMoveClusterInformation,
131 FileQuotaInformation,
132 FileReparsePointInformation,
133 FileNetworkOpenInformation,
134 FileAttributeTagInformation,
135 FileTrackingInformation,
136 FileMaximumInformation
137} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
138
139typedef enum _SECTION_INHERIT
140{
141 ViewShare = 1,
142 ViewUnmap = 2
143
144} SECTION_INHERIT;
145
146/*
147 placeholder
148*/
149typedef enum _OBJECT_INFORMATION_CLASS
150{
151 DunnoTheConstants1
152
153} OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS;
154
155
156/*
157 * NtQuerySystemInformation
158 */
159
160typedef enum SYSTEM_INFORMATION_CLASS
161{ Unknown1 = 1,
162 Unknown2,
163 Unknown3,
164 Unknown4,
165 SystemPerformanceInformation
166} SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS;
167
168/* reading coffee grounds... */
169typedef struct _THREAD_INFO
170{ DWORD Unknown1[6];
171 DWORD ThreadID;
172 DWORD Unknown2[3];
173 DWORD Status;
174 DWORD WaitReason;
175 DWORD Unknown3[4];
176} THREAD_INFO, PTHREAD_INFO;
177
178typedef struct _VM_COUNTERS_
179{ ULONG PeakVirtualSize;
180 ULONG VirtualSize;
181 ULONG PageFaultCount;
182 ULONG PeakWorkingSetSize;
183 ULONG WorkingSetSize;
184 ULONG QuotaPeakPagedPoolUsage;
185 ULONG QuotaPagedPoolUsage;
186 ULONG QuotaPeakNonPagedPoolUsage;
187 ULONG QuotaNonPagedPoolUsage;
188 ULONG PagefileUsage;
189 ULONG PeakPagefileUsage;
190} VM_COUNTERS, *PVM_COUNTERS;
191
192typedef struct _PROCESS_INFO
193{ DWORD Offset; /* 00 offset to next PROCESS_INFO ok*/
194 DWORD ThreadCount; /* 04 number of ThreadInfo member ok */
195 DWORD Unknown1[6];
196 FILETIME CreationTime; /* 20 */
197 DWORD Unknown2[5];
198 PWCHAR ProcessName; /* 3c ok */
199 DWORD BasePriority;
200 DWORD ProcessID; /* 44 ok*/
201 DWORD ParentProcessID;
202 DWORD HandleCount;
203 DWORD Unknown3[2]; /* 50 */
204 ULONG PeakVirtualSize;
205 ULONG VirtualSize;
206 ULONG PageFaultCount;
207 ULONG PeakWorkingSetSize;
208 ULONG WorkingSetSize;
209 ULONG QuotaPeakPagedPoolUsage;
210 ULONG QuotaPagedPoolUsage;
211 ULONG QuotaPeakNonPagedPoolUsage;
212 ULONG QuotaNonPagedPoolUsage;
213 ULONG PagefileUsage;
214 ULONG PeakPagefileUsage;
215 DWORD PrivateBytes;
216 DWORD Unknown6[4];
217 THREAD_INFO ati[ANYSIZE_ARRAY]; /* 94 size=0x40*/
218} PROCESS_INFO, PPROCESS_INFO;
219
220NTSTATUS WINAPI NtQuerySystemInformation(
221 IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
222 OUT PVOID SystemInformation,
223 IN ULONG Length,
224 OUT PULONG ResultLength);
225
226/*
227 * system configuration
228 */
229
230
231typedef struct _SYSTEM_TIME_ADJUSTMENT
232{
233 ULONG TimeAdjustment;
234 BOOLEAN TimeAdjustmentDisabled;
235
236} SYSTEM_TIME_ADJUSTMENT, *PSYSTEM_TIME_ADJUSTMENT;
237
238typedef struct _SYSTEM_CONFIGURATION_INFO
239{
240 union
241 { ULONG OemId;
242 struct
243 { WORD ProcessorArchitecture;
244 WORD Reserved;
245 } tag1;
246 } tag2;
247 ULONG PageSize;
248 PVOID MinimumApplicationAddress;
249 PVOID MaximumApplicationAddress;
250 ULONG ActiveProcessorMask;
251 ULONG NumberOfProcessors;
252 ULONG ProcessorType;
253 ULONG AllocationGranularity;
254 WORD ProcessorLevel;
255 WORD ProcessorRevision;
256
257} SYSTEM_CONFIGURATION_INFO, *PSYSTEM_CONFIGURATION_INFO;
258
259
260typedef struct _SYSTEM_CACHE_INFORMATION
261{
262 ULONG CurrentSize;
263 ULONG PeakSize;
264 ULONG PageFaultCount;
265 ULONG MinimumWorkingSet;
266 ULONG MaximumWorkingSet;
267 ULONG Unused[4];
268
269} SYSTEM_CACHE_INFORMATION;
270
271/*
272 * NtQueryProcessInformation
273 */
274
275/* parameter ProcessInformationClass */
276
277typedef enum _PROCESSINFOCLASS
278{ ProcessBasicInformation,
279 ProcessQuotaLimits,
280 ProcessIoCounters,
281 ProcessVmCounters,
282 ProcessTimes,
283 ProcessBasePriority,
284 ProcessRaisePriority,
285 ProcessDebugPort,
286 ProcessExceptionPort,
287 ProcessAccessToken,
288 ProcessLdtInformation,
289 ProcessLdtSize,
290 ProcessDefaultHardErrorMode,
291 ProcessIoPortHandlers,
292 ProcessPooledUsageAndLimits,
293 ProcessWorkingSetWatch,
294 ProcessUserModeIOPL,
295 ProcessEnableAlignmentFaultFixup,
296 ProcessPriorityClass,
297 ProcessWx86Information,
298 ProcessHandleCount,
299 ProcessAffinityMask,
300 ProcessPriorityBoost,
301 ProcessDeviceMap,
302 ProcessSessionInformation,
303 ProcessForegroundInformation,
304 ProcessWow64Information,
305 MaxProcessInfoClass
306} PROCESSINFOCLASS;
307
308/* parameter ProcessInformation (depending on ProcessInformationClass) */
309
310typedef struct _PROCESS_BASIC_INFORMATION
311{ DWORD ExitStatus;
312 DWORD PebBaseAddress;
313 DWORD AffinityMask;
314 DWORD BasePriority;
315 ULONG UniqueProcessId;
316 ULONG InheritedFromUniqueProcessId;
317} PROCESS_BASIC_INFORMATION;
318
319NTSTATUS WINAPI NtQueryInformationProcess(
320 IN HANDLE ProcessHandle,
321 IN PROCESSINFOCLASS ProcessInformationClass,
322 OUT PVOID ProcessInformation,
323 IN ULONG ProcessInformationLength,
324 OUT PULONG ReturnLength);
325
326#define NtCurrentProcess() ( (HANDLE) -1 )
327
328/*
329 * timer
330 */
331
332typedef enum _TIMER_TYPE
333{
334 NotificationTimer,
335 SynchronizationTimer
336
337} TIMER_TYPE;
338
339/*
340 * token functions
341 */
342
343NTSTATUS WINAPI NtOpenProcessToken(
344 HANDLE ProcessHandle,
345 DWORD DesiredAccess,
346 HANDLE *TokenHandle);
347
348NTSTATUS WINAPI NtOpenThreadToken(
349 HANDLE ThreadHandle,
350 DWORD DesiredAccess,
351 BOOLEAN OpenAsSelf,
352 HANDLE *TokenHandle);
353
354NTSTATUS WINAPI NtAdjustPrivilegesToken(
355 IN HANDLE TokenHandle,
356 IN BOOLEAN DisableAllPrivileges,
357 IN PTOKEN_PRIVILEGES NewState,
358 IN DWORD BufferLength,
359 OUT PTOKEN_PRIVILEGES PreviousState,
360 OUT PDWORD ReturnLength);
361
362NTSTATUS WINAPI NtQueryInformationToken(
363 HANDLE token,
364 DWORD tokeninfoclass,
365 LPVOID tokeninfo,
366 DWORD tokeninfolength,
367 LPDWORD retlen );
368
369/*
370 * sid functions
371 */
372
373BOOLEAN WINAPI RtlAllocateAndInitializeSid ( PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
374 BYTE nSubAuthorityCount,
375 DWORD nSubAuthority0,
376 DWORD nSubAuthority1,
377 DWORD nSubAuthority2,
378 DWORD nSubAuthority3,
379 DWORD nSubAuthority4,
380 DWORD nSubAuthority5,
381 DWORD nSubAuthority6,
382 DWORD nSubAuthority7,
383 PSID *pSid);
384
385BOOL WINAPI RtlEqualSid(PSID pSid1, PSID pSid2);
386BOOL WINAPI RtlEqualPrefixSid (PSID pSid1, PSID pSid2);
387BOOL WINAPI RtlValidSid( PSID pSid );
388VOID* WINAPI RtlFreeSid(PSID pSid);
389DWORD WINAPI RtlLengthRequiredSid(DWORD nrofsubauths);
390DWORD WINAPI RtlLengthSid(PSID sid);
391DWORD WINAPI RtlInitializeSid(PSID PSID,PSID_IDENTIFIER_AUTHORITY PSIDauth, DWORD c);
392LPDWORD WINAPI RtlSubAuthoritySid(PSID PSID,DWORD nr);
393LPBYTE WINAPI RtlSubAuthorityCountSid(PSID PSID);
394PSID_IDENTIFIER_AUTHORITY WINAPI RtlIdentifierAuthoritySid( PSID pSid );
395DWORD WINAPI RtlCopySid(DWORD len,PSID to,PSID from);
396
397/*
398 * security descriptor functions
399 */
400
401NTSTATUS WINAPI RtlCreateSecurityDescriptor(
402 PSECURITY_DESCRIPTOR lpsd,
403 DWORD rev);
404
405NTSTATUS WINAPI RtlValidSecurityDescriptor(
406 PSECURITY_DESCRIPTOR SecurityDescriptor);
407
408ULONG WINAPI RtlLengthSecurityDescriptor(
409 PSECURITY_DESCRIPTOR SecurityDescriptor);
410
411NTSTATUS WINAPI RtlGetDaclSecurityDescriptor(
412 IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
413 OUT PBOOLEAN lpbDaclPresent,
414 OUT PACL *pDacl,
415 OUT PBOOLEAN lpbDaclDefaulted);
416
417NTSTATUS WINAPI RtlSetDaclSecurityDescriptor (
418 PSECURITY_DESCRIPTOR lpsd,
419 BOOLEAN daclpresent,
420 PACL dacl,
421 BOOLEAN dacldefaulted );
422
423NTSTATUS WINAPI RtlGetSaclSecurityDescriptor(
424 IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
425 OUT PBOOLEAN lpbSaclPresent,
426 OUT PACL *pSacl,
427 OUT PBOOLEAN lpbSaclDefaulted);
428
429NTSTATUS WINAPI RtlSetSaclSecurityDescriptor (
430 PSECURITY_DESCRIPTOR lpsd,
431 BOOLEAN saclpresent,
432 PACL sacl,
433 BOOLEAN sacldefaulted);
434
435NTSTATUS WINAPI RtlGetOwnerSecurityDescriptor(
436 PSECURITY_DESCRIPTOR SecurityDescriptor,
437 PSID *Owner,
438 PBOOLEAN OwnerDefaulted);
439
440NTSTATUS WINAPI RtlSetOwnerSecurityDescriptor(
441 PSECURITY_DESCRIPTOR lpsd,
442 PSID owner,
443 BOOLEAN ownerdefaulted);
444
445NTSTATUS WINAPI RtlSetGroupSecurityDescriptor (
446 PSECURITY_DESCRIPTOR lpsd,
447 PSID group,
448 BOOLEAN groupdefaulted);
449
450NTSTATUS WINAPI RtlGetGroupSecurityDescriptor(
451 PSECURITY_DESCRIPTOR SecurityDescriptor,
452 PSID *Group,
453 PBOOLEAN GroupDefaulted);
454
455/* ##############################
456 ###### ACL FUNCTIONS ######
457 ##############################
458*/
459
460DWORD WINAPI RtlCreateAcl(PACL acl,DWORD size,DWORD rev);
461
462BOOLEAN WINAPI RtlFirstFreeAce(
463 PACL acl,
464 PACE_HEADER *x);
465
466NTSTATUS WINAPI RtlAddAce(
467 PACL acl,
468 DWORD rev,
469 DWORD xnrofaces,
470 PACE_HEADER acestart,
471 DWORD acelen);
472
473DWORD WINAPI RtlAddAccessAllowedAce(DWORD x1,DWORD x2,DWORD x3,DWORD x4);
474DWORD WINAPI RtlGetAce(PACL pAcl,DWORD dwAceIndex,LPVOID *pAce );
475
476/*
477 * string functions
478 */
479
480DWORD WINAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING uni,PANSI_STRING ansi,BOOLEAN doalloc);
481DWORD WINAPI RtlOemStringToUnicodeString(PUNICODE_STRING uni,PSTRING ansi,BOOLEAN doalloc);
482DWORD WINAPI RtlMultiByteToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oemlen);
483DWORD WINAPI RtlOemToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oemlen);
484VOID WINAPI RtlInitAnsiString(PANSI_STRING target,LPCSTR source);
485VOID WINAPI RtlInitString(PSTRING target,LPCSTR source);
486VOID WINAPI RtlInitUnicodeString(PUNICODE_STRING target,LPCWSTR source);
487VOID WINAPI RtlFreeUnicodeString(PUNICODE_STRING str);
488VOID WINAPI RtlFreeAnsiString(PANSI_STRING AnsiString);
489DWORD WINAPI RtlUnicodeToOemN(LPSTR oemstr,DWORD oemlen,LPDWORD reslen,LPWSTR unistr,DWORD unilen);
490DWORD WINAPI RtlUnicodeStringToOemString(PANSI_STRING oem,PUNICODE_STRING uni,BOOLEAN alloc);
491DWORD WINAPI RtlUnicodeStringToAnsiString(PANSI_STRING oem,PUNICODE_STRING uni,BOOLEAN alloc);
492DWORD WINAPI RtlEqualUnicodeString(PUNICODE_STRING s1,PUNICODE_STRING s2,DWORD x);
493DWORD WINAPI RtlUpcaseUnicodeString(PUNICODE_STRING dest,PUNICODE_STRING src,BOOLEAN doalloc);
494UINT WINAPI RtlxOemStringToUnicodeSize(PSTRING str);
495UINT WINAPI RtlxAnsiStringToUnicodeSize(PANSI_STRING str);
496DWORD WINAPI RtlIsTextUnicode(LPVOID buf, DWORD len, DWORD *pf);
497DWORD WINAPI RtlCompareUnicodeString(PUNICODE_STRING String1, PUNICODE_STRING String2, BOOLEAN CaseInSensitive);
498DWORD WINAPI RtlUpcaseUnicodeStringToOemString(PANSI_STRING oem, PUNICODE_STRING uni, BOOLEAN alloc);
499
500/*
501 * resource functions
502 */
503
504typedef struct _RTL_RWLOCK {
505 CRITICAL_SECTION rtlCS;
506 HANDLE hSharedReleaseSemaphore;
507 UINT uSharedWaiters;
508 HANDLE hExclusiveReleaseSemaphore;
509 UINT uExclusiveWaiters;
510 INT iNumberActive;
511 HANDLE hOwningThreadId;
512 DWORD dwTimeoutBoost;
513 PVOID pDebugInfo;
514} RTL_RWLOCK, *LPRTL_RWLOCK;
515
516VOID WINAPI RtlInitializeResource(
517 LPRTL_RWLOCK);
518
519VOID WINAPI RtlDeleteResource(
520 LPRTL_RWLOCK);
521
522BYTE WINAPI RtlAcquireResourceExclusive(
523 LPRTL_RWLOCK, BYTE fWait);
524
525BYTE WINAPI RtlAcquireResourceShared(
526 LPRTL_RWLOCK, BYTE fWait);
527
528VOID WINAPI RtlReleaseResource(
529 LPRTL_RWLOCK);
530
531VOID WINAPI RtlDumpResource(
532 LPRTL_RWLOCK);
533
534/*
535 time functions
536 */
537
538typedef struct _TIME_FIELDS
539{ CSHORT Year;
540 CSHORT Month;
541 CSHORT Day;
542 CSHORT Hour;
543 CSHORT Minute;
544 CSHORT Second;
545 CSHORT Milliseconds;
546 CSHORT Weekday;
547} TIME_FIELDS;
548
549typedef TIME_FIELDS *PTIME_FIELDS;
550
551VOID WINAPI RtlSystemTimeToLocalTime(
552 IN PLARGE_INTEGER SystemTime,
553 OUT PLARGE_INTEGER LocalTime);
554
555VOID WINAPI RtlTimeToTimeFields(
556 PLARGE_INTEGER liTime,
557 PTIME_FIELDS TimeFields);
558
559BOOLEAN WINAPI RtlTimeFieldsToTime(
560 PTIME_FIELDS tfTimeFields,
561 PLARGE_INTEGER Time);
562
563VOID WINAPI RtlTimeToElapsedTimeFields(
564 PLARGE_INTEGER liTime,
565 PTIME_FIELDS TimeFields);
566
567BOOLEAN WINAPI RtlTimeToSecondsSince1980(
568 LPFILETIME ft,
569 LPDWORD timeret);
570
571BOOLEAN WINAPI RtlTimeToSecondsSince1970(
572 LPFILETIME ft,
573 LPDWORD timeret);
574
575BOOLEAN WINAPI RtlSecondsSince1970ToTime(LPFILETIME ft, LPDWORD timeret);
576BOOLEAN WINAPI RtlSecondsSince1980ToTime(LPFILETIME ft, LPDWORD timeret);
577
578
579/*
580 heap functions
581*/
582
583/* Data structure for heap definition. This includes various
584 sizing parameters and callback routines, which, if left NULL,
585 result in default behavior */
586
587typedef struct
588{ ULONG Length; /* = sizeof(RTL_HEAP_DEFINITION) */
589 ULONG Unknown[11];
590} RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION;
591
592HANDLE WINAPI RtlCreateHeap(
593 ULONG Flags,
594 PVOID BaseAddress,
595 ULONG SizeToReserve,
596 ULONG SizeToCommit,
597 PVOID Unknown,
598 PRTL_HEAP_DEFINITION Definition);
599
600PVOID WINAPI RtlAllocateHeap(
601 HANDLE Heap,
602 ULONG Flags,
603 ULONG Size);
604
605
606BOOLEAN WINAPI RtlFreeHeap(
607 HANDLE Heap,
608 ULONG Flags,
609 PVOID Address);
610
611/*
612 * misc
613 */
614void __cdecl DbgPrint(LPCSTR fmt,LPVOID args);
615void WINAPI REGS_FUNC(DebugBreak)( CONTEXT *context );
616void WINAPI RtlRaiseStatus( NTSTATUS status );
617void WINAPI REGS_FUNC(NtRaiseException)( EXCEPTION_RECORD *rec, CONTEXT *ctx, BOOL first, CONTEXT *context );
618//void WINAPI REGS_FUNC(RtlUnwind)( PEXCEPTION_FRAME pEndFrame, LPVOID unusedEip, PEXCEPTION_RECORD pRecord, DWORD returnEax, CONTEXT *context );
619void WINAPI REGS_FUNC(RtlRaiseException)( EXCEPTION_RECORD *rec, CONTEXT *context );
620
621VOID WINAPI RtlAcquirePebLock(void);
622VOID WINAPI RtlReleasePebLock(void);
623DWORD WINAPI RtlAdjustPrivilege(DWORD x1,DWORD x2,DWORD x3,DWORD x4);
624DWORD WINAPI RtlIntegerToChar(DWORD x1,DWORD x2,DWORD x3,DWORD x4);
625DWORD WINAPI RtlSetEnvironmentVariable(DWORD x1,PUNICODE_STRING key,PUNICODE_STRING val);
626DWORD WINAPI RtlNewSecurityObject(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6);
627DWORD WINAPI RtlDeleteSecurityObject(DWORD x1);
628LPVOID WINAPI RtlNormalizeProcessParams(LPVOID x);
629DWORD WINAPI RtlNtStatusToDosError(DWORD error);
630BOOLEAN WINAPI RtlGetNtProductType(LPDWORD type);
631INT WINAPI RtlExtendedLargeIntegerDivide(LARGE_INTEGER dividend, DWORD divisor, LPDWORD rest);
632LARGE_INTEGER WINAPI RtlExtendedIntegerMultiply(LARGE_INTEGER factor1,INT factor2);
633DWORD WINAPI RtlFormatCurrentUserKeyPath(PUNICODE_STRING pustrKeyPath);
634DWORD WINAPI RtlOpenCurrentUser(DWORD x1, DWORD *x2);
635BOOLEAN WINAPI RtlDosPathNameToNtPathName_U( LPWSTR from,PUNICODE_STRING us,DWORD x2,DWORD x3);
636DWORD WINAPI RtlCreateEnvironment(DWORD x1,DWORD x2);
637DWORD WINAPI RtlDestroyEnvironment(DWORD x);
638DWORD WINAPI RtlQueryEnvironmentVariable_U(DWORD x1,PUNICODE_STRING key,PUNICODE_STRING val) ;
639
640BOOL WINAPI IsValidSid(PSID);
641BOOL WINAPI EqualSid(PSID,PSID);
642BOOL WINAPI EqualPrefixSid(PSID,PSID);
643DWORD WINAPI GetSidLengthRequired(BYTE);
644BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,
645 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,
646 DWORD,PSID*);
647VOID* WINAPI FreeSid(PSID);
648BOOL WINAPI InitializeSecurityDescriptor(SECURITY_DESCRIPTOR*,DWORD);
649BOOL WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
650DWORD* WINAPI GetSidSubAuthority(PSID,DWORD);
651BYTE * WINAPI GetSidSubAuthorityCount(PSID);
652DWORD WINAPI GetLengthSid(PSID);
653BOOL WINAPI CopySid(DWORD,PSID,PSID);
654BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPCSTR,LPDWORD,LPCSTR,LPDWORD,
655 PSID_NAME_USE);
656BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPCWSTR,LPDWORD,LPCWSTR,LPDWORD,
657 PSID_NAME_USE);
658PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
659
660#ifdef __cplusplus
661}
662#endif
663
664#endif
Note: See TracBrowser for help on using the repository browser.