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

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

Changes to make it compile again

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