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

Last change on this file since 10367 was 9992, checked in by sandervl, 22 years ago

PF: GCC 3.2.1 updates + NTDLL resync

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