Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 1 | /* |
| 2 | this file defines interfaces mainly exposed to device drivers and |
| 3 | native nt dll's |
| 4 | |
| 5 | */ |
| 6 | #ifndef __WINE_NTDDK_H |
| 7 | #define __WINE_NTDDK_H |
| 8 | |
Alexandre Julliard | 89fae7e | 1999-05-12 12:47:01 +0000 | [diff] [blame] | 9 | #include "ntdef.h" |
| 10 | #include "winnt.h" |
Dmitry Timoshkov | 1da43e3 | 2000-02-25 21:36:57 +0000 | [diff] [blame] | 11 | #include "winreg.h" |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 12 | #include "winbase.h" /* fixme: should be taken out sometimes */ |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 13 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 14 | #include "pshpack1.h" |
| 15 | |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 16 | #ifdef __cplusplus |
| 17 | extern "C" { |
| 18 | #endif |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 19 | |
| 20 | /****************** |
| 21 | * asynchronous I/O |
| 22 | */ |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 23 | #undef Status /* conflict with X11-includes*/ |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 24 | |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 25 | typedef struct _IO_STATUS_BLOCK |
Patrik Stridvall | 32b4325 | 1999-09-14 07:52:16 +0000 | [diff] [blame] | 26 | { |
| 27 | union { |
| 28 | NTSTATUS Status; |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 29 | PVOID Pointer; |
Patrik Stridvall | 32b4325 | 1999-09-14 07:52:16 +0000 | [diff] [blame] | 30 | } DUMMYUNIONNAME; |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 31 | ULONG_PTR Information; |
| 32 | } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; |
| 33 | |
Francois Gouget | ae41e8c | 2000-06-11 20:07:58 +0000 | [diff] [blame] | 34 | typedef VOID NTAPI (*PIO_APC_ROUTINE) ( PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG Reserved ); |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 35 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 36 | /* |
| 37 | registry |
| 38 | */ |
| 39 | |
| 40 | /* key information */ |
| 41 | typedef struct _KEY_BASIC_INFORMATION { |
| 42 | FILETIME LastWriteTime; |
| 43 | ULONG TitleIndex; |
| 44 | ULONG NameLength; |
| 45 | WCHAR Name[1]; |
| 46 | } KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION; |
| 47 | |
| 48 | typedef struct _KEY_NODE_INFORMATION |
| 49 | { |
| 50 | FILETIME LastWriteTime; |
| 51 | ULONG TitleIndex; |
| 52 | ULONG ClassOffset; |
| 53 | ULONG ClassLength; |
| 54 | ULONG NameLength; |
| 55 | WCHAR Name[1]; |
| 56 | /* Class[1]; */ |
| 57 | } KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION; |
| 58 | |
| 59 | typedef struct _KEY_FULL_INFORMATION |
| 60 | { |
| 61 | FILETIME LastWriteTime; |
| 62 | ULONG TitleIndex; |
| 63 | ULONG ClassOffset; |
| 64 | ULONG ClassLength; |
| 65 | ULONG SubKeys; |
| 66 | ULONG MaxNameLen; |
| 67 | ULONG MaxClassLen; |
| 68 | ULONG Values; |
| 69 | ULONG MaxValueNameLen; |
| 70 | ULONG MaxValueDataLen; |
| 71 | WCHAR Class[1]; |
| 72 | } KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION; |
| 73 | |
| 74 | typedef enum _KEY_INFORMATION_CLASS |
| 75 | { |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 76 | KeyBasicInformation, |
| 77 | KeyNodeInformation, |
| 78 | KeyFullInformation |
| 79 | } KEY_INFORMATION_CLASS; |
| 80 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 81 | typedef struct _KEY_VALUE_ENTRY |
| 82 | { |
| 83 | PUNICODE_STRING ValueName; |
| 84 | ULONG DataLength; |
| 85 | ULONG DataOffset; |
| 86 | ULONG Type; |
| 87 | } KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY; |
| 88 | |
| 89 | /* value information */ |
| 90 | typedef struct _KEY_VALUE_BASIC_INFORMATION |
| 91 | { |
| 92 | ULONG TitleIndex; |
| 93 | ULONG Type; |
| 94 | ULONG NameLength; |
| 95 | WCHAR Name[1]; |
| 96 | } KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION; |
| 97 | |
| 98 | typedef struct _KEY_VALUE_FULL_INFORMATION |
| 99 | { |
| 100 | ULONG TitleIndex; |
| 101 | ULONG Type; |
| 102 | ULONG DataOffset; |
| 103 | ULONG DataLength; |
| 104 | ULONG NameLength; |
| 105 | WCHAR Name[1]; |
| 106 | /* UCHAR Data[1];*/ |
| 107 | } KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION; |
| 108 | |
| 109 | typedef struct _KEY_VALUE_PARTIAL_INFORMATION |
| 110 | { |
| 111 | ULONG TitleIndex; |
| 112 | ULONG Type; |
| 113 | ULONG DataLength; |
| 114 | UCHAR Data[1]; |
| 115 | } KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION; |
| 116 | |
| 117 | typedef enum _KEY_VALUE_INFORMATION_CLASS |
| 118 | { |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 119 | KeyValueBasicInformation, |
| 120 | KeyValueFullInformation, |
| 121 | KeyValuePartialInformation, |
| 122 | KeyValueFullInformationAlign64, |
| 123 | KeyValuePartialInformationAlign64 |
| 124 | } KEY_VALUE_INFORMATION_CLASS; |
| 125 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 126 | NTSTATUS WINAPI RtlFormatCurrentUserKeyPath( |
| 127 | PUNICODE_STRING KeyPath); |
| 128 | |
| 129 | /* thread information */ |
| 130 | |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 131 | typedef enum _THREADINFOCLASS |
| 132 | { ThreadBasicInformation, |
| 133 | ThreadTimes, |
| 134 | ThreadPriority, |
| 135 | ThreadBasePriority, |
| 136 | ThreadAffinityMask, |
| 137 | ThreadImpersonationToken, |
| 138 | ThreadDescriptorTableEntry, |
| 139 | ThreadEnableAlignmentFaultFixup, |
| 140 | ThreadEventPair_Reusable, |
| 141 | ThreadQuerySetWin32StartAddress, |
| 142 | ThreadZeroTlsCell, |
| 143 | ThreadPerformanceCount, |
| 144 | ThreadAmILastThread, |
| 145 | ThreadIdealProcessor, |
| 146 | ThreadPriorityBoost, |
| 147 | ThreadSetTlsArrayAddress, |
| 148 | ThreadIsIoPending, |
| 149 | MaxThreadInfoClass |
| 150 | } THREADINFOCLASS; |
| 151 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 152 | /* file information */ |
| 153 | |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 154 | typedef enum _FILE_INFORMATION_CLASS { |
| 155 | FileDirectoryInformation = 1, |
| 156 | FileFullDirectoryInformation, |
| 157 | FileBothDirectoryInformation, |
| 158 | FileBasicInformation, |
| 159 | FileStandardInformation, |
| 160 | FileInternalInformation, |
| 161 | FileEaInformation, |
| 162 | FileAccessInformation, |
| 163 | FileNameInformation, |
| 164 | FileRenameInformation, |
| 165 | FileLinkInformation, |
| 166 | FileNamesInformation, |
| 167 | FileDispositionInformation, |
| 168 | FilePositionInformation, |
| 169 | FileFullEaInformation, |
| 170 | FileModeInformation, |
| 171 | FileAlignmentInformation, |
| 172 | FileAllInformation, |
| 173 | FileAllocationInformation, |
| 174 | FileEndOfFileInformation, |
| 175 | FileAlternateNameInformation, |
| 176 | FileStreamInformation, |
| 177 | FilePipeInformation, |
| 178 | FilePipeLocalInformation, |
| 179 | FilePipeRemoteInformation, |
| 180 | FileMailslotQueryInformation, |
| 181 | FileMailslotSetInformation, |
| 182 | FileCompressionInformation, |
| 183 | FileObjectIdInformation, |
| 184 | FileCompletionInformation, |
| 185 | FileMoveClusterInformation, |
| 186 | FileQuotaInformation, |
| 187 | FileReparsePointInformation, |
| 188 | FileNetworkOpenInformation, |
| 189 | FileAttributeTagInformation, |
| 190 | FileTrackingInformation, |
| 191 | FileMaximumInformation |
| 192 | } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; |
| 193 | |
Patrik Stridvall | b8684a2 | 1999-07-31 17:32:05 +0000 | [diff] [blame] | 194 | typedef enum _FSINFOCLASS { |
| 195 | FileFsVolumeInformation = 1, |
| 196 | FileFsLabelInformation, |
| 197 | FileFsSizeInformation, |
| 198 | FileFsDeviceInformation, |
| 199 | FileFsAttributeInformation, |
| 200 | FileFsControlInformation, |
| 201 | FileFsFullSizeInformation, |
| 202 | FileFsObjectIdInformation, |
| 203 | FileFsMaximumInformation |
| 204 | } FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS; |
| 205 | |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 206 | typedef enum _SECTION_INHERIT |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 207 | { |
| 208 | ViewShare = 1, |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 209 | ViewUnmap = 2 |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 210 | |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 211 | } SECTION_INHERIT; |
| 212 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 213 | /* object information */ |
| 214 | |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 215 | typedef enum _OBJECT_INFORMATION_CLASS |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 216 | { |
| 217 | DunnoTheConstants1 |
| 218 | |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 219 | } OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS; |
| 220 | |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 221 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 222 | /* system information */ |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 223 | |
| 224 | typedef enum SYSTEM_INFORMATION_CLASS |
| 225 | { Unknown1 = 1, |
| 226 | Unknown2, |
| 227 | Unknown3, |
| 228 | Unknown4, |
| 229 | SystemPerformanceInformation |
| 230 | } SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS; |
| 231 | |
| 232 | /* reading coffee grounds... */ |
| 233 | typedef struct _THREAD_INFO |
| 234 | { DWORD Unknown1[6]; |
| 235 | DWORD ThreadID; |
| 236 | DWORD Unknown2[3]; |
| 237 | DWORD Status; |
| 238 | DWORD WaitReason; |
| 239 | DWORD Unknown3[4]; |
| 240 | } THREAD_INFO, PTHREAD_INFO; |
| 241 | |
| 242 | typedef struct _VM_COUNTERS_ |
| 243 | { ULONG PeakVirtualSize; |
| 244 | ULONG VirtualSize; |
| 245 | ULONG PageFaultCount; |
| 246 | ULONG PeakWorkingSetSize; |
| 247 | ULONG WorkingSetSize; |
| 248 | ULONG QuotaPeakPagedPoolUsage; |
| 249 | ULONG QuotaPagedPoolUsage; |
| 250 | ULONG QuotaPeakNonPagedPoolUsage; |
| 251 | ULONG QuotaNonPagedPoolUsage; |
| 252 | ULONG PagefileUsage; |
| 253 | ULONG PeakPagefileUsage; |
| 254 | } VM_COUNTERS, *PVM_COUNTERS; |
| 255 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 256 | /* process information */ |
| 257 | |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 258 | typedef struct _PROCESS_INFO |
| 259 | { DWORD Offset; /* 00 offset to next PROCESS_INFO ok*/ |
| 260 | DWORD ThreadCount; /* 04 number of ThreadInfo member ok */ |
| 261 | DWORD Unknown1[6]; |
| 262 | FILETIME CreationTime; /* 20 */ |
| 263 | DWORD Unknown2[5]; |
| 264 | PWCHAR ProcessName; /* 3c ok */ |
| 265 | DWORD BasePriority; |
| 266 | DWORD ProcessID; /* 44 ok*/ |
| 267 | DWORD ParentProcessID; |
| 268 | DWORD HandleCount; |
| 269 | DWORD Unknown3[2]; /* 50 */ |
| 270 | ULONG PeakVirtualSize; |
| 271 | ULONG VirtualSize; |
| 272 | ULONG PageFaultCount; |
| 273 | ULONG PeakWorkingSetSize; |
| 274 | ULONG WorkingSetSize; |
| 275 | ULONG QuotaPeakPagedPoolUsage; |
| 276 | ULONG QuotaPagedPoolUsage; |
| 277 | ULONG QuotaPeakNonPagedPoolUsage; |
| 278 | ULONG QuotaNonPagedPoolUsage; |
| 279 | ULONG PagefileUsage; |
| 280 | ULONG PeakPagefileUsage; |
| 281 | DWORD PrivateBytes; |
| 282 | DWORD Unknown6[4]; |
| 283 | THREAD_INFO ati[ANYSIZE_ARRAY]; /* 94 size=0x40*/ |
| 284 | } PROCESS_INFO, PPROCESS_INFO; |
| 285 | |
| 286 | NTSTATUS WINAPI NtQuerySystemInformation( |
| 287 | IN SYSTEM_INFORMATION_CLASS SystemInformationClass, |
| 288 | OUT PVOID SystemInformation, |
| 289 | IN ULONG Length, |
| 290 | OUT PULONG ResultLength); |
| 291 | |
| 292 | /* |
| 293 | * system configuration |
| 294 | */ |
| 295 | |
| 296 | |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 297 | typedef struct _SYSTEM_TIME_ADJUSTMENT |
| 298 | { |
| 299 | ULONG TimeAdjustment; |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 300 | BOOLEAN TimeAdjustmentDisabled; |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 301 | |
| 302 | } SYSTEM_TIME_ADJUSTMENT, *PSYSTEM_TIME_ADJUSTMENT; |
| 303 | |
| 304 | typedef struct _SYSTEM_CONFIGURATION_INFO |
| 305 | { |
| 306 | union |
| 307 | { ULONG OemId; |
| 308 | struct |
| 309 | { WORD ProcessorArchitecture; |
| 310 | WORD Reserved; |
| 311 | } tag1; |
| 312 | } tag2; |
| 313 | ULONG PageSize; |
| 314 | PVOID MinimumApplicationAddress; |
| 315 | PVOID MaximumApplicationAddress; |
| 316 | ULONG ActiveProcessorMask; |
| 317 | ULONG NumberOfProcessors; |
| 318 | ULONG ProcessorType; |
| 319 | ULONG AllocationGranularity; |
| 320 | WORD ProcessorLevel; |
| 321 | WORD ProcessorRevision; |
| 322 | |
| 323 | } SYSTEM_CONFIGURATION_INFO, *PSYSTEM_CONFIGURATION_INFO; |
| 324 | |
| 325 | |
| 326 | typedef struct _SYSTEM_CACHE_INFORMATION |
| 327 | { |
| 328 | ULONG CurrentSize; |
| 329 | ULONG PeakSize; |
| 330 | ULONG PageFaultCount; |
| 331 | ULONG MinimumWorkingSet; |
| 332 | ULONG MaximumWorkingSet; |
| 333 | ULONG Unused[4]; |
| 334 | |
| 335 | } SYSTEM_CACHE_INFORMATION; |
| 336 | |
| 337 | /* |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 338 | * NtQueryProcessInformation |
| 339 | */ |
| 340 | |
| 341 | /* parameter ProcessInformationClass */ |
| 342 | |
| 343 | typedef enum _PROCESSINFOCLASS |
| 344 | { ProcessBasicInformation, |
| 345 | ProcessQuotaLimits, |
| 346 | ProcessIoCounters, |
| 347 | ProcessVmCounters, |
| 348 | ProcessTimes, |
| 349 | ProcessBasePriority, |
| 350 | ProcessRaisePriority, |
| 351 | ProcessDebugPort, |
| 352 | ProcessExceptionPort, |
| 353 | ProcessAccessToken, |
| 354 | ProcessLdtInformation, |
| 355 | ProcessLdtSize, |
| 356 | ProcessDefaultHardErrorMode, |
| 357 | ProcessIoPortHandlers, |
| 358 | ProcessPooledUsageAndLimits, |
| 359 | ProcessWorkingSetWatch, |
| 360 | ProcessUserModeIOPL, |
| 361 | ProcessEnableAlignmentFaultFixup, |
| 362 | ProcessPriorityClass, |
| 363 | ProcessWx86Information, |
| 364 | ProcessHandleCount, |
| 365 | ProcessAffinityMask, |
| 366 | ProcessPriorityBoost, |
| 367 | ProcessDeviceMap, |
| 368 | ProcessSessionInformation, |
| 369 | ProcessForegroundInformation, |
| 370 | ProcessWow64Information, |
| 371 | MaxProcessInfoClass |
| 372 | } PROCESSINFOCLASS; |
| 373 | |
| 374 | /* parameter ProcessInformation (depending on ProcessInformationClass) */ |
| 375 | |
| 376 | typedef struct _PROCESS_BASIC_INFORMATION |
| 377 | { DWORD ExitStatus; |
| 378 | DWORD PebBaseAddress; |
| 379 | DWORD AffinityMask; |
| 380 | DWORD BasePriority; |
| 381 | ULONG UniqueProcessId; |
| 382 | ULONG InheritedFromUniqueProcessId; |
| 383 | } PROCESS_BASIC_INFORMATION; |
| 384 | |
| 385 | NTSTATUS WINAPI NtQueryInformationProcess( |
| 386 | IN HANDLE ProcessHandle, |
| 387 | IN PROCESSINFOCLASS ProcessInformationClass, |
| 388 | OUT PVOID ProcessInformation, |
| 389 | IN ULONG ProcessInformationLength, |
| 390 | OUT PULONG ReturnLength); |
| 391 | |
Juergen Schmied | d1f10c5 | 1999-04-11 14:53:24 +0000 | [diff] [blame] | 392 | #define NtCurrentProcess() ( (HANDLE) -1 ) |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 393 | |
| 394 | /* |
| 395 | * timer |
| 396 | */ |
| 397 | |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 398 | typedef enum _TIMER_TYPE |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 399 | { |
| 400 | NotificationTimer, |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 401 | SynchronizationTimer |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 402 | |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 403 | } TIMER_TYPE; |
| 404 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 405 | /* token functions */ |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 406 | |
| 407 | NTSTATUS WINAPI NtOpenProcessToken( |
| 408 | HANDLE ProcessHandle, |
| 409 | DWORD DesiredAccess, |
| 410 | HANDLE *TokenHandle); |
| 411 | |
| 412 | NTSTATUS WINAPI NtOpenThreadToken( |
| 413 | HANDLE ThreadHandle, |
| 414 | DWORD DesiredAccess, |
| 415 | BOOLEAN OpenAsSelf, |
| 416 | HANDLE *TokenHandle); |
| 417 | |
| 418 | NTSTATUS WINAPI NtAdjustPrivilegesToken( |
| 419 | IN HANDLE TokenHandle, |
| 420 | IN BOOLEAN DisableAllPrivileges, |
| 421 | IN PTOKEN_PRIVILEGES NewState, |
| 422 | IN DWORD BufferLength, |
| 423 | OUT PTOKEN_PRIVILEGES PreviousState, |
| 424 | OUT PDWORD ReturnLength); |
| 425 | |
| 426 | NTSTATUS WINAPI NtQueryInformationToken( |
| 427 | HANDLE token, |
| 428 | DWORD tokeninfoclass, |
| 429 | LPVOID tokeninfo, |
| 430 | DWORD tokeninfolength, |
| 431 | LPDWORD retlen ); |
| 432 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 433 | /* sid functions */ |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 434 | |
| 435 | BOOLEAN WINAPI RtlAllocateAndInitializeSid ( |
| 436 | PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 437 | BYTE nSubAuthorityCount, |
| 438 | DWORD nSubAuthority0, DWORD nSubAuthority1, |
| 439 | DWORD nSubAuthority2, DWORD nSubAuthority3, |
| 440 | DWORD nSubAuthority4, DWORD nSubAuthority5, |
| 441 | DWORD nSubAuthority6, DWORD nSubAuthority7, |
| 442 | PSID *pSid ); |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 443 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 444 | BOOL WINAPI RtlInitializeSid( |
| 445 | PSID pSid, |
| 446 | PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, |
| 447 | BYTE nSubAuthorityCount); |
| 448 | |
| 449 | DWORD WINAPI RtlFreeSid( |
| 450 | PSID pSid); |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 451 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 452 | BOOL WINAPI RtlEqualSid( |
| 453 | PSID pSid1, |
| 454 | PSID pSid2 ); |
| 455 | |
| 456 | DWORD WINAPI RtlLengthRequiredSid( |
| 457 | DWORD nrofsubauths); |
| 458 | |
| 459 | DWORD WINAPI RtlLengthSid( |
| 460 | PSID sid); |
| 461 | |
| 462 | LPDWORD WINAPI RtlSubAuthoritySid( |
| 463 | PSID PSID, |
| 464 | DWORD nr); |
| 465 | |
| 466 | LPBYTE WINAPI RtlSubAuthorityCountSid( |
| 467 | PSID pSid); |
| 468 | |
| 469 | DWORD WINAPI RtlCopySid( |
| 470 | DWORD len, |
| 471 | PSID to, |
| 472 | PSID from); |
| 473 | |
| 474 | BOOL WINAPI RtlValidSid( |
| 475 | PSID pSid); |
| 476 | |
| 477 | BOOL WINAPI RtlEqualPrefixSid( |
| 478 | PSID pSid1, |
| 479 | PSID pSid2); |
| 480 | |
| 481 | PSID_IDENTIFIER_AUTHORITY WINAPI RtlIdentifierAuthoritySid( |
| 482 | PSID pSid ); |
| 483 | |
| 484 | /* security descriptor functions */ |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 485 | |
| 486 | NTSTATUS WINAPI RtlCreateSecurityDescriptor( |
| 487 | PSECURITY_DESCRIPTOR lpsd, |
| 488 | DWORD rev); |
| 489 | |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 490 | NTSTATUS WINAPI RtlValidSecurityDescriptor( |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 491 | PSECURITY_DESCRIPTOR SecurityDescriptor); |
| 492 | |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 493 | ULONG WINAPI RtlLengthSecurityDescriptor( |
| 494 | PSECURITY_DESCRIPTOR SecurityDescriptor); |
| 495 | |
| 496 | NTSTATUS WINAPI RtlGetDaclSecurityDescriptor( |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 497 | IN PSECURITY_DESCRIPTOR pSecurityDescriptor, |
| 498 | OUT PBOOLEAN lpbDaclPresent, |
| 499 | OUT PACL *pDacl, |
| 500 | OUT PBOOLEAN lpbDaclDefaulted); |
| 501 | |
| 502 | NTSTATUS WINAPI RtlSetDaclSecurityDescriptor ( |
| 503 | PSECURITY_DESCRIPTOR lpsd, |
| 504 | BOOLEAN daclpresent, |
| 505 | PACL dacl, |
| 506 | BOOLEAN dacldefaulted ); |
| 507 | |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 508 | NTSTATUS WINAPI RtlGetSaclSecurityDescriptor( |
| 509 | IN PSECURITY_DESCRIPTOR pSecurityDescriptor, |
| 510 | OUT PBOOLEAN lpbSaclPresent, |
| 511 | OUT PACL *pSacl, |
| 512 | OUT PBOOLEAN lpbSaclDefaulted); |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 513 | |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 514 | NTSTATUS WINAPI RtlSetSaclSecurityDescriptor ( |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 515 | PSECURITY_DESCRIPTOR lpsd, |
| 516 | BOOLEAN saclpresent, |
| 517 | PACL sacl, |
| 518 | BOOLEAN sacldefaulted); |
| 519 | |
| 520 | NTSTATUS WINAPI RtlGetOwnerSecurityDescriptor( |
| 521 | PSECURITY_DESCRIPTOR SecurityDescriptor, |
| 522 | PSID *Owner, |
| 523 | PBOOLEAN OwnerDefaulted); |
| 524 | |
| 525 | NTSTATUS WINAPI RtlSetOwnerSecurityDescriptor( |
| 526 | PSECURITY_DESCRIPTOR lpsd, |
| 527 | PSID owner, |
| 528 | BOOLEAN ownerdefaulted); |
| 529 | |
| 530 | NTSTATUS WINAPI RtlSetGroupSecurityDescriptor ( |
| 531 | PSECURITY_DESCRIPTOR lpsd, |
| 532 | PSID group, |
| 533 | BOOLEAN groupdefaulted); |
| 534 | |
| 535 | NTSTATUS WINAPI RtlGetGroupSecurityDescriptor( |
| 536 | PSECURITY_DESCRIPTOR SecurityDescriptor, |
| 537 | PSID *Group, |
| 538 | PBOOLEAN GroupDefaulted); |
| 539 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 540 | NTSTATUS WINAPI RtlMakeSelfRelativeSD( |
| 541 | IN PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, |
| 542 | IN PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, |
| 543 | IN OUT LPDWORD lpdwBufferLength); |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 544 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 545 | NTSTATUS WINAPI RtlGetControlSecurityDescriptor( |
| 546 | PSECURITY_DESCRIPTOR pSecurityDescriptor, |
| 547 | PSECURITY_DESCRIPTOR_CONTROL pControl, |
| 548 | LPDWORD lpdwRevision); |
| 549 | |
| 550 | /* acl functions */ |
| 551 | |
| 552 | NTSTATUS WINAPI RtlCreateAcl( |
| 553 | PACL acl, |
| 554 | DWORD size, |
| 555 | DWORD rev); |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 556 | |
| 557 | BOOLEAN WINAPI RtlFirstFreeAce( |
| 558 | PACL acl, |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 559 | PACE_HEADER *x); |
| 560 | |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 561 | NTSTATUS WINAPI RtlAddAce( |
| 562 | PACL acl, |
| 563 | DWORD rev, |
| 564 | DWORD xnrofaces, |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 565 | PACE_HEADER acestart, |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 566 | DWORD acelen); |
| 567 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 568 | BOOL WINAPI RtlAddAccessAllowedAce( |
| 569 | IN OUT PACL pAcl, |
| 570 | IN DWORD dwAceRevision, |
| 571 | IN DWORD AccessMask, |
| 572 | IN PSID pSid); |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 573 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 574 | BOOL WINAPI AddAccessAllowedAceEx( |
| 575 | IN OUT PACL pAcl, |
| 576 | IN DWORD dwAceRevision, |
| 577 | IN DWORD AceFlags, |
| 578 | IN DWORD AccessMask, |
| 579 | IN PSID pSid); |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 580 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 581 | DWORD WINAPI RtlGetAce( |
| 582 | PACL pAcl, |
| 583 | DWORD dwAceIndex, |
| 584 | LPVOID *pAce ); |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 585 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 586 | /* string functions */ |
| 587 | |
Alexandre Julliard | d2f8bf6 | 2000-08-25 22:12:42 +0000 | [diff] [blame] | 588 | DWORD WINAPI RtlAnsiStringToUnicodeSize(PSTRING); |
| 589 | NTSTATUS WINAPI RtlAnsiStringToUnicodeString(UNICODE_STRING*,const STRING *,BOOLEAN); |
| 590 | NTSTATUS WINAPI RtlAppendAsciizToString(STRING*,LPCSTR); |
| 591 | NTSTATUS WINAPI RtlAppendStringToString(STRING*,const STRING*); |
| 592 | NTSTATUS WINAPI RtlAppendUnicodeStringToString(UNICODE_STRING*,const UNICODE_STRING*); |
| 593 | NTSTATUS WINAPI RtlAppendUnicodeToString(UNICODE_STRING*,LPCWSTR); |
| 594 | LONG WINAPI RtlCompareString(const STRING*,const STRING*,BOOLEAN); |
| 595 | LONG WINAPI RtlCompareUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN); |
| 596 | void WINAPI RtlCopyString(STRING*,const STRING*); |
| 597 | void WINAPI RtlCopyUnicodeString(UNICODE_STRING*,const UNICODE_STRING*); |
| 598 | BOOLEAN WINAPI RtlCreateUnicodeString(PUNICODE_STRING,LPCWSTR); |
| 599 | BOOLEAN WINAPI RtlCreateUnicodeStringFromAsciiz(PUNICODE_STRING,LPCSTR); |
| 600 | void WINAPI RtlEraseUnicodeString(UNICODE_STRING*); |
| 601 | BOOLEAN WINAPI RtlEqualString(const STRING*,const STRING*,BOOLEAN); |
| 602 | BOOLEAN WINAPI RtlEqualUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN); |
| 603 | void WINAPI RtlFreeAnsiString(PSTRING); |
| 604 | void WINAPI RtlFreeOemString(PSTRING); |
| 605 | void WINAPI RtlFreeUnicodeString(PUNICODE_STRING); |
| 606 | void WINAPI RtlInitAnsiString(PSTRING,LPCSTR); |
| 607 | void WINAPI RtlInitString(PSTRING,LPCSTR); |
| 608 | void WINAPI RtlInitUnicodeString(PUNICODE_STRING,LPCWSTR); |
| 609 | NTSTATUS WINAPI RtlMultiByteToUnicodeN(LPWSTR,DWORD,LPDWORD,LPCSTR,DWORD); |
| 610 | NTSTATUS WINAPI RtlMultiByteToUnicodeSize(DWORD*,LPCSTR,UINT); |
| 611 | UINT WINAPI RtlOemStringToUnicodeSize(PSTRING); |
| 612 | NTSTATUS WINAPI RtlOemStringToUnicodeString(UNICODE_STRING*,const STRING*,BOOLEAN); |
| 613 | NTSTATUS WINAPI RtlOemToUnicodeN(LPWSTR,DWORD,LPDWORD,LPCSTR,DWORD); |
| 614 | BOOLEAN WINAPI RtlPrefixString(const STRING*,const STRING*,BOOLEAN); |
| 615 | BOOLEAN WINAPI RtlPrefixUnicodeString(const UNICODE_STRING*,const UNICODE_STRING*,BOOLEAN); |
| 616 | DWORD WINAPI RtlUnicodeStringToAnsiSize(const UNICODE_STRING*); |
| 617 | NTSTATUS WINAPI RtlUnicodeStringToAnsiString(STRING*,const UNICODE_STRING*,BOOLEAN); |
| 618 | DWORD WINAPI RtlUnicodeStringToOemSize(const UNICODE_STRING*); |
| 619 | NTSTATUS WINAPI RtlUnicodeStringToOemString(STRING*,const UNICODE_STRING*,BOOLEAN); |
| 620 | NTSTATUS WINAPI RtlUnicodeToMultiByteN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD); |
| 621 | NTSTATUS WINAPI RtlUnicodeToMultiByteSize(DWORD*,LPCWSTR,UINT); |
| 622 | NTSTATUS WINAPI RtlUnicodeToOemN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD); |
| 623 | NTSTATUS WINAPI RtlUpcaseUnicodeString(UNICODE_STRING*,const UNICODE_STRING *,BOOLEAN); |
| 624 | NTSTATUS WINAPI RtlUpcaseUnicodeStringToAnsiString(STRING*,const UNICODE_STRING*,BOOLEAN); |
| 625 | NTSTATUS WINAPI RtlUpcaseUnicodeStringToOemString(STRING*,const UNICODE_STRING*,BOOLEAN); |
| 626 | NTSTATUS WINAPI RtlUpcaseUnicodeToMultiByteN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD); |
| 627 | NTSTATUS WINAPI RtlUpcaseUnicodeToOemN(LPSTR,DWORD,LPDWORD,LPCWSTR,DWORD); |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 628 | |
| 629 | DWORD WINAPI RtlIsTextUnicode( |
| 630 | LPVOID buf, |
| 631 | DWORD len, |
| 632 | DWORD *pf); |
| 633 | |
Huw D M Davies | 899861d | 2001-09-26 23:05:35 +0000 | [diff] [blame] | 634 | INT __cdecl wcstol(LPCWSTR,LPWSTR*,INT); |
| 635 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 636 | /* resource functions */ |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 637 | |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 638 | typedef struct _RTL_RWLOCK { |
| 639 | CRITICAL_SECTION rtlCS; |
| 640 | HANDLE hSharedReleaseSemaphore; |
| 641 | UINT uSharedWaiters; |
| 642 | HANDLE hExclusiveReleaseSemaphore; |
| 643 | UINT uExclusiveWaiters; |
| 644 | INT iNumberActive; |
| 645 | HANDLE hOwningThreadId; |
| 646 | DWORD dwTimeoutBoost; |
| 647 | PVOID pDebugInfo; |
| 648 | } RTL_RWLOCK, *LPRTL_RWLOCK; |
| 649 | |
| 650 | VOID WINAPI RtlInitializeResource( |
| 651 | LPRTL_RWLOCK); |
| 652 | |
| 653 | VOID WINAPI RtlDeleteResource( |
| 654 | LPRTL_RWLOCK); |
| 655 | |
| 656 | BYTE WINAPI RtlAcquireResourceExclusive( |
| 657 | LPRTL_RWLOCK, BYTE fWait); |
| 658 | |
| 659 | BYTE WINAPI RtlAcquireResourceShared( |
| 660 | LPRTL_RWLOCK, BYTE fWait); |
| 661 | |
| 662 | VOID WINAPI RtlReleaseResource( |
| 663 | LPRTL_RWLOCK); |
| 664 | |
| 665 | VOID WINAPI RtlDumpResource( |
| 666 | LPRTL_RWLOCK); |
| 667 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 668 | /* time functions */ |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 669 | |
| 670 | typedef struct _TIME_FIELDS |
| 671 | { CSHORT Year; |
| 672 | CSHORT Month; |
| 673 | CSHORT Day; |
| 674 | CSHORT Hour; |
| 675 | CSHORT Minute; |
| 676 | CSHORT Second; |
| 677 | CSHORT Milliseconds; |
| 678 | CSHORT Weekday; |
| 679 | } TIME_FIELDS; |
| 680 | |
| 681 | typedef TIME_FIELDS *PTIME_FIELDS; |
| 682 | |
| 683 | VOID WINAPI RtlSystemTimeToLocalTime( |
| 684 | IN PLARGE_INTEGER SystemTime, |
| 685 | OUT PLARGE_INTEGER LocalTime); |
| 686 | |
| 687 | VOID WINAPI RtlTimeToTimeFields( |
| 688 | PLARGE_INTEGER liTime, |
| 689 | PTIME_FIELDS TimeFields); |
| 690 | |
| 691 | BOOLEAN WINAPI RtlTimeFieldsToTime( |
| 692 | PTIME_FIELDS tfTimeFields, |
| 693 | PLARGE_INTEGER Time); |
| 694 | |
| 695 | VOID WINAPI RtlTimeToElapsedTimeFields( |
| 696 | PLARGE_INTEGER liTime, |
| 697 | PTIME_FIELDS TimeFields); |
| 698 | |
Alexandre Julliard | d76f9f9 | 2000-10-01 01:40:42 +0000 | [diff] [blame] | 699 | void WINAPI NtQuerySystemTime( LARGE_INTEGER *time ); |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 700 | |
Alexandre Julliard | d76f9f9 | 2000-10-01 01:40:42 +0000 | [diff] [blame] | 701 | BOOLEAN WINAPI RtlTimeToSecondsSince1980( const FILETIME *time, LPDWORD res ); |
| 702 | BOOLEAN WINAPI RtlTimeToSecondsSince1970( const FILETIME *time, LPDWORD res ); |
| 703 | void WINAPI RtlSecondsSince1970ToTime( DWORD time, FILETIME *res ); |
| 704 | void WINAPI RtlSecondsSince1980ToTime( DWORD time, FILETIME *res ); |
Alexandre Julliard | 0aa6cc2 | 2000-07-29 21:56:59 +0000 | [diff] [blame] | 705 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 706 | /* heap functions */ |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 707 | |
| 708 | /* Data structure for heap definition. This includes various |
| 709 | sizing parameters and callback routines, which, if left NULL, |
| 710 | result in default behavior */ |
| 711 | |
| 712 | typedef struct |
| 713 | { ULONG Length; /* = sizeof(RTL_HEAP_DEFINITION) */ |
| 714 | ULONG Unknown[11]; |
| 715 | } RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION; |
| 716 | |
| 717 | HANDLE WINAPI RtlCreateHeap( |
| 718 | ULONG Flags, |
| 719 | PVOID BaseAddress, |
| 720 | ULONG SizeToReserve, |
| 721 | ULONG SizeToCommit, |
| 722 | PVOID Unknown, |
| 723 | PRTL_HEAP_DEFINITION Definition); |
| 724 | |
| 725 | PVOID WINAPI RtlAllocateHeap( |
| 726 | HANDLE Heap, |
| 727 | ULONG Flags, |
| 728 | ULONG Size); |
| 729 | |
| 730 | |
| 731 | BOOLEAN WINAPI RtlFreeHeap( |
| 732 | HANDLE Heap, |
| 733 | ULONG Flags, |
| 734 | PVOID Address); |
| 735 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 736 | /* exception */ |
| 737 | |
| 738 | void WINAPI NtRaiseException( |
| 739 | PEXCEPTION_RECORD,PCONTEXT,BOOL); |
| 740 | |
| 741 | void WINAPI RtlRaiseException( |
| 742 | PEXCEPTION_RECORD); |
| 743 | |
| 744 | void WINAPI RtlRaiseStatus( |
| 745 | NTSTATUS); |
| 746 | |
| 747 | void WINAPI RtlUnwind( |
| 748 | PEXCEPTION_FRAME, |
| 749 | LPVOID, |
| 750 | PEXCEPTION_RECORD,DWORD); |
| 751 | |
| 752 | /* process environment block */ |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 753 | VOID WINAPI RtlAcquirePebLock(void); |
| 754 | VOID WINAPI RtlReleasePebLock(void); |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 755 | |
| 756 | /* mathematics */ |
Alexandre Julliard | d76f9f9 | 2000-10-01 01:40:42 +0000 | [diff] [blame] | 757 | LONGLONG WINAPI RtlConvertLongToLargeInteger( LONG a ); |
| 758 | LONGLONG WINAPI RtlEnlargedIntegerMultiply( INT a, INT b ); |
Alexandre Julliard | d76f9f9 | 2000-10-01 01:40:42 +0000 | [diff] [blame] | 759 | LONGLONG WINAPI RtlExtendedMagicDivide( LONGLONG a, LONGLONG b, INT shift ); |
| 760 | LONGLONG WINAPI RtlExtendedIntegerMultiply( LONGLONG a, INT b ); |
| 761 | LONGLONG WINAPI RtlExtendedLargeIntegerDivide( LONGLONG a, INT b, INT *rem ); |
| 762 | LONGLONG WINAPI RtlLargeIntegerAdd( LONGLONG a, LONGLONG b ); |
| 763 | LONGLONG WINAPI RtlLargeIntegerArithmeticShift( LONGLONG a, INT count ); |
| 764 | LONGLONG WINAPI RtlLargeIntegerNegate( LONGLONG a ); |
| 765 | LONGLONG WINAPI RtlLargeIntegerShiftLeft( LONGLONG a, INT count ); |
| 766 | LONGLONG WINAPI RtlLargeIntegerShiftRight( LONGLONG a, INT count ); |
| 767 | LONGLONG WINAPI RtlLargeIntegerSubtract( LONGLONG a, LONGLONG b ); |
Alexandre Julliard | 27952ef | 2000-10-13 20:26:03 +0000 | [diff] [blame] | 768 | ULONGLONG WINAPI RtlEnlargedUnsignedMultiply( UINT a, UINT b ); |
Alexandre Julliard | d76f9f9 | 2000-10-01 01:40:42 +0000 | [diff] [blame] | 769 | UINT WINAPI RtlEnlargedUnsignedDivide( ULONGLONG a, UINT b, UINT *remptr ); |
| 770 | ULONGLONG WINAPI RtlConvertUlongToLargeInteger( ULONG a ); |
| 771 | ULONGLONG WINAPI RtlLargeIntegerDivide( ULONGLONG a, ULONGLONG b, ULONGLONG *rem ); |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 772 | |
| 773 | /* environment */ |
| 774 | DWORD WINAPI RtlCreateEnvironment( |
| 775 | DWORD x1, |
| 776 | DWORD x2); |
| 777 | |
| 778 | DWORD WINAPI RtlDestroyEnvironment( |
| 779 | DWORD x); |
| 780 | |
| 781 | DWORD WINAPI RtlQueryEnvironmentVariable_U( |
| 782 | DWORD x1, |
| 783 | PUNICODE_STRING key, |
| 784 | PUNICODE_STRING val) ; |
| 785 | |
| 786 | DWORD WINAPI RtlSetEnvironmentVariable( |
| 787 | DWORD x1, |
| 788 | PUNICODE_STRING key, |
| 789 | PUNICODE_STRING val); |
| 790 | |
| 791 | /* object security */ |
| 792 | |
| 793 | DWORD WINAPI RtlNewSecurityObject( |
| 794 | DWORD x1, |
| 795 | DWORD x2, |
| 796 | DWORD x3, |
| 797 | DWORD x4, |
| 798 | DWORD x5, |
| 799 | DWORD x6); |
| 800 | |
| 801 | DWORD WINAPI RtlDeleteSecurityObject( |
| 802 | DWORD x1); |
| 803 | |
| 804 | NTSTATUS WINAPI |
| 805 | NtQuerySecurityObject( |
| 806 | IN HANDLE Object, |
| 807 | IN SECURITY_INFORMATION RequestedInformation, |
| 808 | OUT PSECURITY_DESCRIPTOR pSecurityDesriptor, |
| 809 | IN ULONG Length, |
| 810 | OUT PULONG ResultLength); |
| 811 | |
| 812 | NTSTATUS WINAPI |
| 813 | NtSetSecurityObject( |
| 814 | IN HANDLE Handle, |
| 815 | IN SECURITY_INFORMATION SecurityInformation, |
| 816 | IN PSECURITY_DESCRIPTOR SecurityDescriptor); |
| 817 | |
Dmitry Timoshkov | 1da43e3 | 2000-02-25 21:36:57 +0000 | [diff] [blame] | 818 | /* registry functions */ |
| 819 | |
Alexandre Julliard | f9087e2 | 2000-08-26 21:17:42 +0000 | [diff] [blame] | 820 | NTSTATUS WINAPI NtCreateKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG, |
| 821 | const UNICODE_STRING*,ULONG,PULONG); |
| 822 | NTSTATUS WINAPI NtDeleteKey(HANDLE); |
| 823 | NTSTATUS WINAPI NtDeleteValueKey(HANDLE,const UNICODE_STRING*); |
| 824 | NTSTATUS WINAPI NtOpenKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*); |
Alexandre Julliard | bcb40b3 | 2000-10-15 00:39:11 +0000 | [diff] [blame] | 825 | NTSTATUS WINAPI NtQueryKey(HANDLE,KEY_INFORMATION_CLASS,void*,DWORD,DWORD*); |
Alexandre Julliard | d76f9f9 | 2000-10-01 01:40:42 +0000 | [diff] [blame] | 826 | NTSTATUS WINAPI NtSetValueKey(HANDLE,const UNICODE_STRING*,ULONG,ULONG,const void*,ULONG); |
Alexandre Julliard | 454355e | 2000-10-02 03:46:58 +0000 | [diff] [blame] | 827 | NTSTATUS WINAPI NtEnumerateKey(HANDLE,ULONG,KEY_INFORMATION_CLASS,void*,DWORD,DWORD*); |
Alexandre Julliard | d76f9f9 | 2000-10-01 01:40:42 +0000 | [diff] [blame] | 828 | NTSTATUS WINAPI NtQueryValueKey(HANDLE,const UNICODE_STRING*,KEY_VALUE_INFORMATION_CLASS, |
| 829 | void*,DWORD,DWORD*); |
Alexandre Julliard | bcb40b3 | 2000-10-15 00:39:11 +0000 | [diff] [blame] | 830 | NTSTATUS WINAPI NtLoadKey(const OBJECT_ATTRIBUTES*,const OBJECT_ATTRIBUTES*); |
Alexandre Julliard | d76f9f9 | 2000-10-01 01:40:42 +0000 | [diff] [blame] | 831 | |
Dmitry Timoshkov | 1da43e3 | 2000-02-25 21:36:57 +0000 | [diff] [blame] | 832 | |
Dmitry Timoshkov | 1da43e3 | 2000-02-25 21:36:57 +0000 | [diff] [blame] | 833 | NTSTATUS WINAPI NtEnumerateValueKey( |
| 834 | HANDLE KeyHandle, |
| 835 | ULONG Index, |
| 836 | KEY_VALUE_INFORMATION_CLASS KeyInformationClass, |
| 837 | PVOID KeyInformation, |
| 838 | ULONG Length, |
| 839 | PULONG ResultLength); |
| 840 | |
| 841 | NTSTATUS WINAPI NtFlushKey(HANDLE KeyHandle); |
| 842 | |
Dmitry Timoshkov | 1da43e3 | 2000-02-25 21:36:57 +0000 | [diff] [blame] | 843 | NTSTATUS WINAPI NtNotifyChangeKey( |
| 844 | IN HANDLE KeyHandle, |
| 845 | IN HANDLE Event, |
| 846 | IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, |
| 847 | IN PVOID ApcContext OPTIONAL, |
| 848 | OUT PIO_STATUS_BLOCK IoStatusBlock, |
| 849 | IN ULONG CompletionFilter, |
| 850 | IN BOOLEAN Asynchroneous, |
| 851 | OUT PVOID ChangeBuffer, |
| 852 | IN ULONG Length, |
| 853 | IN BOOLEAN WatchSubtree); |
| 854 | |
| 855 | NTSTATUS WINAPI NtQueryMultipleValueKey( |
| 856 | HANDLE KeyHandle, |
| 857 | PVALENTW ListOfValuesToQuery, |
| 858 | ULONG NumberOfItems, |
| 859 | PVOID MultipleValueInformation, |
| 860 | ULONG Length, |
| 861 | PULONG ReturnLength); |
| 862 | |
Dmitry Timoshkov | 1da43e3 | 2000-02-25 21:36:57 +0000 | [diff] [blame] | 863 | NTSTATUS WINAPI NtReplaceKey( |
| 864 | IN POBJECT_ATTRIBUTES ObjectAttributes, |
| 865 | IN HANDLE Key, |
| 866 | IN POBJECT_ATTRIBUTES ReplacedObjectAttributes); |
| 867 | |
| 868 | NTSTATUS WINAPI NtRestoreKey( |
| 869 | HANDLE KeyHandle, |
| 870 | HANDLE FileHandle, |
| 871 | ULONG RestoreFlags); |
| 872 | |
| 873 | NTSTATUS WINAPI NtSaveKey( |
| 874 | IN HANDLE KeyHandle, |
| 875 | IN HANDLE FileHandle); |
| 876 | |
| 877 | NTSTATUS WINAPI NtSetInformationKey( |
| 878 | IN HANDLE KeyHandle, |
| 879 | IN const int KeyInformationClass, |
| 880 | IN PVOID KeyInformation, |
| 881 | IN ULONG KeyInformationLength); |
| 882 | |
Dmitry Timoshkov | 1da43e3 | 2000-02-25 21:36:57 +0000 | [diff] [blame] | 883 | NTSTATUS WINAPI NtUnloadKey( |
| 884 | IN HANDLE KeyHandle); |
| 885 | |
| 886 | NTSTATUS WINAPI NtClose( |
| 887 | HANDLE Handle); |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 888 | |
Alexandre Julliard | 0aa6cc2 | 2000-07-29 21:56:59 +0000 | [diff] [blame] | 889 | NTSTATUS WINAPI NtTerminateProcess( HANDLE handle, LONG exit_code ); |
Alexandre Julliard | 9c2370b | 2000-08-30 00:00:48 +0000 | [diff] [blame] | 890 | NTSTATUS WINAPI NtTerminateThread( HANDLE handle, LONG exit_code ); |
Alexandre Julliard | 0aa6cc2 | 2000-07-29 21:56:59 +0000 | [diff] [blame] | 891 | |
Alexandre Julliard | afb49ea | 2000-09-29 20:48:04 +0000 | [diff] [blame] | 892 | NTSTATUS WINAPI NtClearEvent(HANDLE); |
Alexandre Julliard | 9c2370b | 2000-08-30 00:00:48 +0000 | [diff] [blame] | 893 | NTSTATUS WINAPI NtCreateEvent(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,BOOLEAN,BOOLEAN); |
| 894 | NTSTATUS WINAPI NtCreateSemaphore(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG,ULONG); |
Alexandre Julliard | afb49ea | 2000-09-29 20:48:04 +0000 | [diff] [blame] | 895 | NTSTATUS WINAPI NtOpenEvent(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *attr); |
| 896 | NTSTATUS WINAPI NtPulseEvent(HANDLE,PULONG); |
| 897 | NTSTATUS WINAPI NtReleaseSemaphore(HANDLE,ULONG,PULONG); |
| 898 | NTSTATUS WINAPI NtResetEvent(HANDLE,PULONG); |
| 899 | NTSTATUS WINAPI NtSetEvent(HANDLE,PULONG); |
Alexandre Julliard | 0aa6cc2 | 2000-07-29 21:56:59 +0000 | [diff] [blame] | 900 | |
Alexandre Julliard | baa1556 | 2000-09-29 00:31:23 +0000 | [diff] [blame] | 901 | NTSTATUS WINAPI RtlInitializeCriticalSection( RTL_CRITICAL_SECTION *crit ); |
David Elliott | 44f84b5 | 2000-10-29 01:24:54 +0000 | [diff] [blame] | 902 | NTSTATUS WINAPI RtlInitializeCriticalSectionAndSpinCount( RTL_CRITICAL_SECTION *crit, DWORD spincount ); |
Alexandre Julliard | baa1556 | 2000-09-29 00:31:23 +0000 | [diff] [blame] | 903 | NTSTATUS WINAPI RtlDeleteCriticalSection( RTL_CRITICAL_SECTION *crit ); |
| 904 | NTSTATUS WINAPI RtlpWaitForCriticalSection( RTL_CRITICAL_SECTION *crit ); |
| 905 | NTSTATUS WINAPI RtlpUnWaitCriticalSection( RTL_CRITICAL_SECTION *crit ); |
| 906 | NTSTATUS WINAPI RtlEnterCriticalSection( RTL_CRITICAL_SECTION *crit ); |
| 907 | BOOL WINAPI RtlTryEnterCriticalSection( RTL_CRITICAL_SECTION *crit ); |
| 908 | NTSTATUS WINAPI RtlLeaveCriticalSection( RTL_CRITICAL_SECTION *crit ); |
Alexandre Julliard | 0aa6cc2 | 2000-07-29 21:56:59 +0000 | [diff] [blame] | 909 | |
Alexandre Julliard | dcd247e | 2000-08-14 17:39:15 +0000 | [diff] [blame] | 910 | /* string functions */ |
| 911 | extern LPSTR _strlwr( LPSTR str ); |
| 912 | extern LPSTR _strupr( LPSTR str ); |
| 913 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 914 | /* misc */ |
| 915 | |
Alexandre Julliard | 00641d5 | 2000-03-08 16:41:37 +0000 | [diff] [blame] | 916 | #if defined(__i386__) && defined(__GNUC__) |
| 917 | static inline void WINAPI DbgBreakPoint(void) { __asm__ __volatile__("int3"); } |
| 918 | static inline void WINAPI DbgUserBreakPoint(void) { __asm__ __volatile__("int3"); } |
| 919 | #else /* __i386__ && __GNUC__ */ |
Alexandre Julliard | 7d0dd5f | 2000-03-07 13:10:21 +0000 | [diff] [blame] | 920 | void WINAPI DbgBreakPoint(void); |
Alexandre Julliard | 00641d5 | 2000-03-08 16:41:37 +0000 | [diff] [blame] | 921 | void WINAPI DbgUserBreakPoint(void); |
| 922 | #endif /* __i386__ && __GNUC__ */ |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 923 | void WINAPIV DbgPrint(LPCSTR fmt, ...); |
| 924 | |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 925 | DWORD WINAPI RtlAdjustPrivilege(DWORD x1,DWORD x2,DWORD x3,DWORD x4); |
| 926 | DWORD WINAPI RtlIntegerToChar(DWORD x1,DWORD x2,DWORD x3,DWORD x4); |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 927 | LPVOID WINAPI RtlNormalizeProcessParams(LPVOID x); |
| 928 | DWORD WINAPI RtlNtStatusToDosError(DWORD error); |
| 929 | BOOLEAN WINAPI RtlGetNtProductType(LPDWORD type); |
Alexandre Julliard | 5ab9d86 | 2000-08-09 22:35:05 +0000 | [diff] [blame] | 930 | PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule); |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 931 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 932 | DWORD WINAPI RtlOpenCurrentUser( |
| 933 | IN ACCESS_MASK DesiredAccess, |
| 934 | OUT PHANDLE KeyHandle); |
| 935 | |
| 936 | BOOLEAN WINAPI RtlDosPathNameToNtPathName_U( LPWSTR from,PUNICODE_STRING us,DWORD x2,DWORD x3); |
| 937 | BOOL WINAPI RtlImpersonateSelf(SECURITY_IMPERSONATION_LEVEL ImpersonationLevel); |
| 938 | |
| 939 | NTSTATUS WINAPI |
| 940 | NtAccessCheck( |
| 941 | IN PSECURITY_DESCRIPTOR SecurityDescriptor, |
| 942 | IN HANDLE ClientToken, |
| 943 | IN ACCESS_MASK DesiredAccess, |
| 944 | IN PGENERIC_MAPPING GenericMapping, |
| 945 | OUT PPRIVILEGE_SET PrivilegeSet, |
| 946 | OUT PULONG ReturnLength, |
| 947 | OUT PULONG GrantedAccess, |
| 948 | OUT PBOOLEAN AccessStatus); |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 949 | |
Juergen Schmied | 7f0c5f3 | 1999-03-09 17:46:10 +0000 | [diff] [blame] | 950 | #ifdef __cplusplus |
| 951 | } |
| 952 | #endif |
Juergen Schmied | 3426d85 | 1999-02-19 16:29:05 +0000 | [diff] [blame] | 953 | |
Juergen Schmied | 02d45e5 | 2000-01-23 22:35:33 +0000 | [diff] [blame] | 954 | #include "poppack.h" |
| 955 | |
Juergen Schmied | cdbdab7 | 1999-02-12 13:44:38 +0000 | [diff] [blame] | 956 | #endif |