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

Last change on this file since 577 was 555, checked in by phaller, 26 years ago

Add: few more exception handling stubs

File size: 17.7 KB
Line 
1/* $Id: ntdll.h,v 1.6 1999-08-18 19:35:30 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/* prototypes */
47LPWSTR HEAP_strdupW(HANDLE heap, DWORD flags, LPCWSTR str);
48LPSTR HEAP_strdupWtoA(HANDLE heap, DWORD flags, LPCWSTR str);
49
50
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 (
374 PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
375 DWORD nSubAuthorityCount,
376 DWORD x3,
377 DWORD x4,
378 DWORD x5,
379 DWORD x6,
380 DWORD x7,
381 DWORD x8,
382 DWORD x9,
383 DWORD x10,
384 PSID pSid);
385
386DWORD WINAPI RtlEqualSid(DWORD x1,DWORD x2);
387DWORD WINAPI RtlFreeSid(DWORD x1);
388DWORD WINAPI RtlLengthRequiredSid(DWORD nrofsubauths);
389DWORD WINAPI RtlLengthSid(PSID sid);
390DWORD WINAPI RtlInitializeSid(PSID PSID,PSID_IDENTIFIER_AUTHORITY PSIDauth, DWORD c);
391LPDWORD WINAPI RtlSubAuthoritySid(PSID PSID,DWORD nr);
392LPBYTE WINAPI RtlSubAuthorityCountSid(PSID PSID);
393DWORD WINAPI RtlCopySid(DWORD len,PSID to,PSID from);
394
395/*
396 * security descriptor functions
397 */
398
399NTSTATUS WINAPI RtlCreateSecurityDescriptor(
400 PSECURITY_DESCRIPTOR lpsd,
401 DWORD rev);
402
403NTSTATUS WINAPI RtlValidSecurityDescriptor(
404 PSECURITY_DESCRIPTOR SecurityDescriptor);
405
406ULONG WINAPI RtlLengthSecurityDescriptor(
407 PSECURITY_DESCRIPTOR SecurityDescriptor);
408
409NTSTATUS WINAPI RtlGetDaclSecurityDescriptor(
410 IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
411 OUT PBOOLEAN lpbDaclPresent,
412 OUT PACL *pDacl,
413 OUT PBOOLEAN lpbDaclDefaulted);
414
415NTSTATUS WINAPI RtlSetDaclSecurityDescriptor (
416 PSECURITY_DESCRIPTOR lpsd,
417 BOOLEAN daclpresent,
418 PACL dacl,
419 BOOLEAN dacldefaulted );
420
421NTSTATUS WINAPI RtlGetSaclSecurityDescriptor(
422 IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
423 OUT PBOOLEAN lpbSaclPresent,
424 OUT PACL *pSacl,
425 OUT PBOOLEAN lpbSaclDefaulted);
426
427NTSTATUS WINAPI RtlSetSaclSecurityDescriptor (
428 PSECURITY_DESCRIPTOR lpsd,
429 BOOLEAN saclpresent,
430 PACL sacl,
431 BOOLEAN sacldefaulted);
432
433NTSTATUS WINAPI RtlGetOwnerSecurityDescriptor(
434 PSECURITY_DESCRIPTOR SecurityDescriptor,
435 PSID *Owner,
436 PBOOLEAN OwnerDefaulted);
437
438NTSTATUS WINAPI RtlSetOwnerSecurityDescriptor(
439 PSECURITY_DESCRIPTOR lpsd,
440 PSID owner,
441 BOOLEAN ownerdefaulted);
442
443NTSTATUS WINAPI RtlSetGroupSecurityDescriptor (
444 PSECURITY_DESCRIPTOR lpsd,
445 PSID group,
446 BOOLEAN groupdefaulted);
447
448NTSTATUS WINAPI RtlGetGroupSecurityDescriptor(
449 PSECURITY_DESCRIPTOR SecurityDescriptor,
450 PSID *Group,
451 PBOOLEAN GroupDefaulted);
452
453/* ##############################
454 ###### ACL FUNCTIONS ######
455 ##############################
456*/
457
458DWORD WINAPI RtlCreateAcl(PACL acl,DWORD size,DWORD rev);
459
460BOOLEAN WINAPI RtlFirstFreeAce(
461 PACL acl,
462 PACE_HEADER *x);
463
464NTSTATUS WINAPI RtlAddAce(
465 PACL acl,
466 DWORD rev,
467 DWORD xnrofaces,
468 PACE_HEADER acestart,
469 DWORD acelen);
470
471DWORD WINAPI RtlAddAccessAllowedAce(DWORD x1,DWORD x2,DWORD x3,DWORD x4);
472DWORD WINAPI RtlGetAce(PACL pAcl,DWORD dwAceIndex,LPVOID *pAce );
473
474/*
475 * string functions
476 */
477
478DWORD WINAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING uni,PANSI_STRING ansi,BOOLEAN doalloc);
479DWORD WINAPI RtlOemStringToUnicodeString(PUNICODE_STRING uni,PSTRING ansi,BOOLEAN doalloc);
480DWORD WINAPI RtlMultiByteToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oemlen);
481DWORD WINAPI RtlOemToUnicodeN(LPWSTR unistr,DWORD unilen,LPDWORD reslen,LPSTR oemstr,DWORD oemlen);
482VOID WINAPI RtlInitAnsiString(PANSI_STRING target,LPCSTR source);
483VOID WINAPI RtlInitString(PSTRING target,LPCSTR source);
484VOID WINAPI RtlInitUnicodeString(PUNICODE_STRING target,LPCWSTR source);
485VOID WINAPI RtlFreeUnicodeString(PUNICODE_STRING str);
486VOID WINAPI RtlFreeAnsiString(PANSI_STRING AnsiString);
487DWORD WINAPI RtlUnicodeToOemN(LPSTR oemstr,DWORD oemlen,LPDWORD reslen,LPWSTR unistr,DWORD unilen);
488DWORD WINAPI RtlUnicodeStringToOemString(PANSI_STRING oem,PUNICODE_STRING uni,BOOLEAN alloc);
489DWORD WINAPI RtlUnicodeStringToAnsiString(PANSI_STRING oem,PUNICODE_STRING uni,BOOLEAN alloc);
490DWORD WINAPI RtlEqualUnicodeString(PUNICODE_STRING s1,PUNICODE_STRING s2,DWORD x);
491DWORD WINAPI RtlUpcaseUnicodeString(PUNICODE_STRING dest,PUNICODE_STRING src,BOOLEAN doalloc);
492UINT WINAPI RtlxOemStringToUnicodeSize(PSTRING str);
493UINT WINAPI RtlxAnsiStringToUnicodeSize(PANSI_STRING str);
494DWORD WINAPI RtlIsTextUnicode(LPVOID buf, DWORD len, DWORD *pf);
495DWORD WINAPI RtlCompareUnicodeString(PUNICODE_STRING String1, PUNICODE_STRING String2, BOOLEAN CaseInSensitive);
496DWORD WINAPI RtlUpcaseUnicodeStringToOemString(PANSI_STRING oem, PUNICODE_STRING uni, BOOLEAN alloc);
497
498/*
499 * resource functions
500 */
501
502typedef struct _RTL_RWLOCK {
503 CRITICAL_SECTION rtlCS;
504 HANDLE hSharedReleaseSemaphore;
505 UINT uSharedWaiters;
506 HANDLE hExclusiveReleaseSemaphore;
507 UINT uExclusiveWaiters;
508 INT iNumberActive;
509 HANDLE hOwningThreadId;
510 DWORD dwTimeoutBoost;
511 PVOID pDebugInfo;
512} RTL_RWLOCK, *LPRTL_RWLOCK;
513
514VOID WINAPI RtlInitializeResource(
515 LPRTL_RWLOCK);
516
517VOID WINAPI RtlDeleteResource(
518 LPRTL_RWLOCK);
519
520BYTE WINAPI RtlAcquireResourceExclusive(
521 LPRTL_RWLOCK, BYTE fWait);
522
523BYTE WINAPI RtlAcquireResourceShared(
524 LPRTL_RWLOCK, BYTE fWait);
525
526VOID WINAPI RtlReleaseResource(
527 LPRTL_RWLOCK);
528
529VOID WINAPI RtlDumpResource(
530 LPRTL_RWLOCK);
531
532/*
533 time functions
534 */
535
536typedef struct _TIME_FIELDS
537{ CSHORT Year;
538 CSHORT Month;
539 CSHORT Day;
540 CSHORT Hour;
541 CSHORT Minute;
542 CSHORT Second;
543 CSHORT Milliseconds;
544 CSHORT Weekday;
545} TIME_FIELDS;
546
547typedef TIME_FIELDS *PTIME_FIELDS;
548
549VOID WINAPI RtlSystemTimeToLocalTime(
550 IN PLARGE_INTEGER SystemTime,
551 OUT PLARGE_INTEGER LocalTime);
552
553VOID WINAPI RtlTimeToTimeFields(
554 PLARGE_INTEGER liTime,
555 PTIME_FIELDS TimeFields);
556
557BOOLEAN WINAPI RtlTimeFieldsToTime(
558 PTIME_FIELDS tfTimeFields,
559 PLARGE_INTEGER Time);
560
561VOID WINAPI RtlTimeToElapsedTimeFields(
562 PLARGE_INTEGER liTime,
563 PTIME_FIELDS TimeFields);
564
565BOOLEAN WINAPI RtlTimeToSecondsSince1980(
566 LPFILETIME ft,
567 LPDWORD timeret);
568
569BOOLEAN WINAPI RtlTimeToSecondsSince1970(
570 LPFILETIME ft,
571 LPDWORD timeret);
572
573BOOLEAN WINAPI RtlSecondsSince1970ToTime(LPFILETIME ft, LPDWORD timeret);
574BOOLEAN WINAPI RtlSecondsSince1980ToTime(LPFILETIME ft, LPDWORD timeret);
575
576
577/*
578 heap functions
579*/
580
581/* Data structure for heap definition. This includes various
582 sizing parameters and callback routines, which, if left NULL,
583 result in default behavior */
584
585typedef struct
586{ ULONG Length; /* = sizeof(RTL_HEAP_DEFINITION) */
587 ULONG Unknown[11];
588} RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION;
589
590HANDLE WINAPI RtlCreateHeap(
591 ULONG Flags,
592 PVOID BaseAddress,
593 ULONG SizeToReserve,
594 ULONG SizeToCommit,
595 PVOID Unknown,
596 PRTL_HEAP_DEFINITION Definition);
597
598PVOID WINAPI RtlAllocateHeap(
599 HANDLE Heap,
600 ULONG Flags,
601 ULONG Size);
602
603
604BOOLEAN WINAPI RtlFreeHeap(
605 HANDLE Heap,
606 ULONG Flags,
607 PVOID Address);
608
609/*
610 * misc
611 */
612void __cdecl DbgPrint(LPCSTR fmt,LPVOID args);
613void WINAPI REGS_FUNC(DebugBreak)( CONTEXT *context );
614void WINAPI RtlRaiseStatus( NTSTATUS status );
615void WINAPI REGS_FUNC(NtRaiseException)( EXCEPTION_RECORD *rec, CONTEXT *ctx, BOOL first, CONTEXT *context );
616//void WINAPI REGS_FUNC(RtlUnwind)( PEXCEPTION_FRAME pEndFrame, LPVOID unusedEip, PEXCEPTION_RECORD pRecord, DWORD returnEax, CONTEXT *context );
617void WINAPI REGS_FUNC(RtlRaiseException)( EXCEPTION_RECORD *rec, CONTEXT *context );
618
619VOID WINAPI RtlAcquirePebLock(void);
620VOID WINAPI RtlReleasePebLock(void);
621DWORD WINAPI RtlAdjustPrivilege(DWORD x1,DWORD x2,DWORD x3,DWORD x4);
622DWORD WINAPI RtlIntegerToChar(DWORD x1,DWORD x2,DWORD x3,DWORD x4);
623DWORD WINAPI RtlSetEnvironmentVariable(DWORD x1,PUNICODE_STRING key,PUNICODE_STRING val);
624DWORD WINAPI RtlNewSecurityObject(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5,DWORD x6);
625DWORD WINAPI RtlDeleteSecurityObject(DWORD x1);
626LPVOID WINAPI RtlNormalizeProcessParams(LPVOID x);
627DWORD WINAPI RtlNtStatusToDosError(DWORD error);
628BOOLEAN WINAPI RtlGetNtProductType(LPDWORD type);
629INT WINAPI RtlExtendedLargeIntegerDivide(LARGE_INTEGER dividend, DWORD divisor, LPDWORD rest);
630LARGE_INTEGER WINAPI RtlExtendedIntegerMultiply(LARGE_INTEGER factor1,INT factor2);
631DWORD WINAPI RtlFormatCurrentUserKeyPath(DWORD x);
632DWORD WINAPI RtlOpenCurrentUser(DWORD x1, DWORD *x2);
633BOOLEAN WINAPI RtlDosPathNameToNtPathName_U( LPWSTR from,PUNICODE_STRING us,DWORD x2,DWORD x3);
634DWORD WINAPI RtlCreateEnvironment(DWORD x1,DWORD x2);
635DWORD WINAPI RtlDestroyEnvironment(DWORD x);
636DWORD WINAPI RtlQueryEnvironmentVariable_U(DWORD x1,PUNICODE_STRING key,PUNICODE_STRING val) ;
637
638BOOL WINAPI IsValidSid(PSID);
639BOOL WINAPI EqualSid(PSID,PSID);
640BOOL WINAPI EqualPrefixSid(PSID,PSID);
641DWORD WINAPI GetSidLengthRequired(BYTE);
642BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,
643 DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,
644 DWORD,PSID*);
645VOID* WINAPI FreeSid(PSID);
646BOOL WINAPI InitializeSecurityDescriptor(SECURITY_DESCRIPTOR*,DWORD);
647BOOL WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE);
648DWORD* WINAPI GetSidSubAuthority(PSID,DWORD);
649BYTE * WINAPI GetSidSubAuthorityCount(PSID);
650DWORD WINAPI GetLengthSid(PSID);
651BOOL WINAPI CopySid(DWORD,PSID,PSID);
652BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPCSTR,LPDWORD,LPCSTR,LPDWORD,
653 PSID_NAME_USE);
654BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPCWSTR,LPDWORD,LPCWSTR,LPDWORD,
655 PSID_NAME_USE);
656PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID);
657
658#ifdef __cplusplus
659}
660#endif
661
662#endif
Note: See TracBrowser for help on using the repository browser.