OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This file holds definitions related to the ntdll API. | 5 // This file holds definitions related to the ntdll API. |
6 | 6 |
7 #ifndef SANDBOX_WIN_SRC_NT_INTERNALS_H__ | 7 #ifndef SANDBOX_WIN_SRC_NT_INTERNALS_H__ |
8 #define SANDBOX_WIN_SRC_NT_INTERNALS_H__ | 8 #define SANDBOX_WIN_SRC_NT_INTERNALS_H__ |
9 | 9 |
10 #include <windows.h> | 10 #include <windows.h> |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 union { | 325 union { |
326 DWORD UniqueProcessId; | 326 DWORD UniqueProcessId; |
327 PVOID padding_for_x64_2; | 327 PVOID padding_for_x64_2; |
328 }; | 328 }; |
329 union { | 329 union { |
330 DWORD InheritedFromUniqueProcessId; | 330 DWORD InheritedFromUniqueProcessId; |
331 PVOID padding_for_x64_3; | 331 PVOID padding_for_x64_3; |
332 }; | 332 }; |
333 } PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION; | 333 } PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION; |
334 | 334 |
335 typedef NTSTATUS (WINAPI *NtQueryInformationProcessFunction)( | 335 typedef NTSTATUS(WINAPI *NtQueryInformationProcessFunction)( |
336 IN HANDLE ProcessHandle, | 336 IN HANDLE ProcessHandle, |
337 IN PROCESSINFOCLASS ProcessInformationClass, | 337 IN PROCESSINFOCLASS ProcessInformationClass, |
338 OUT PVOID ProcessInformation, | 338 OUT PVOID ProcessInformation, |
339 IN ULONG ProcessInformationLength, | 339 IN ULONG ProcessInformationLength, |
340 OUT PULONG ReturnLength OPTIONAL); | 340 OUT PULONG ReturnLength OPTIONAL); |
341 | 341 |
342 typedef NTSTATUS (WINAPI *NtSetInformationProcessFunction)( | 342 typedef NTSTATUS(WINAPI *NtSetInformationProcessFunction)( |
343 HANDLE ProcessHandle, | 343 HANDLE ProcessHandle, |
344 IN PROCESSINFOCLASS ProcessInformationClass, | 344 IN PROCESSINFOCLASS ProcessInformationClass, |
345 IN PVOID ProcessInformation, | 345 IN PVOID ProcessInformation, |
346 IN ULONG ProcessInformationLength); | 346 IN ULONG ProcessInformationLength); |
347 | 347 |
348 typedef NTSTATUS (WINAPI *NtOpenThreadTokenFunction) ( | 348 typedef NTSTATUS (WINAPI *NtOpenThreadTokenFunction) ( |
349 IN HANDLE ThreadHandle, | 349 IN HANDLE ThreadHandle, |
350 IN ACCESS_MASK DesiredAccess, | 350 IN ACCESS_MASK DesiredAccess, |
351 IN BOOLEAN OpenAsSelf, | 351 IN BOOLEAN OpenAsSelf, |
352 OUT PHANDLE TokenHandle); | 352 OUT PHANDLE TokenHandle); |
353 | 353 |
354 typedef NTSTATUS (WINAPI *NtOpenThreadTokenExFunction) ( | 354 typedef NTSTATUS (WINAPI *NtOpenThreadTokenExFunction) ( |
355 IN HANDLE ThreadHandle, | 355 IN HANDLE ThreadHandle, |
356 IN ACCESS_MASK DesiredAccess, | 356 IN ACCESS_MASK DesiredAccess, |
357 IN BOOLEAN OpenAsSelf, | 357 IN BOOLEAN OpenAsSelf, |
358 IN ULONG HandleAttributes, | 358 IN ULONG HandleAttributes, |
359 OUT PHANDLE TokenHandle); | 359 OUT PHANDLE TokenHandle); |
360 | 360 |
361 typedef NTSTATUS (WINAPI *NtOpenProcessTokenFunction) ( | 361 typedef NTSTATUS (WINAPI *NtOpenProcessTokenFunction) ( |
362 IN HANDLE ProcessHandle, | 362 IN HANDLE ProcessHandle, |
363 IN ACCESS_MASK DesiredAccess, | 363 IN ACCESS_MASK DesiredAccess, |
364 OUT PHANDLE TokenHandle); | 364 OUT PHANDLE TokenHandle); |
365 | 365 |
366 typedef NTSTATUS (WINAPI *NtOpenProcessTokenExFunction) ( | 366 typedef NTSTATUS (WINAPI *NtOpenProcessTokenExFunction) ( |
367 IN HANDLE ProcessHandle, | 367 IN HANDLE ProcessHandle, |
368 IN ACCESS_MASK DesiredAccess, | 368 IN ACCESS_MASK DesiredAccess, |
369 IN ULONG HandleAttributes, | 369 IN ULONG HandleAttributes, |
370 OUT PHANDLE TokenHandle); | 370 OUT PHANDLE TokenHandle); |
371 | 371 |
372 typedef NTSTATUS (WINAPI * RtlCreateUserThreadFunction)( | 372 typedef NTSTATUS(WINAPI *NtQueryInformationTokenFunction)( |
373 IN HANDLE Process, | 373 IN HANDLE TokenHandle, |
374 IN PSECURITY_DESCRIPTOR ThreadSecurityDescriptor, | 374 IN TOKEN_INFORMATION_CLASS TokenInformationClass, |
375 IN BOOLEAN CreateSuspended, | 375 OUT PVOID TokenInformation, |
376 IN ULONG ZeroBits, | 376 IN ULONG TokenInformationLength, |
377 IN SIZE_T MaximumStackSize, | 377 OUT PULONG ReturnLength); |
378 IN SIZE_T CommittedStackSize, | 378 |
379 IN LPTHREAD_START_ROUTINE StartAddress, | 379 typedef NTSTATUS(WINAPI *RtlCreateUserThreadFunction)( |
380 IN PVOID Parameter, | 380 IN HANDLE Process, |
381 OUT PHANDLE Thread, | 381 IN PSECURITY_DESCRIPTOR ThreadSecurityDescriptor, |
382 OUT PCLIENT_ID ClientId); | 382 IN BOOLEAN CreateSuspended, |
| 383 IN ULONG ZeroBits, |
| 384 IN SIZE_T MaximumStackSize, |
| 385 IN SIZE_T CommittedStackSize, |
| 386 IN LPTHREAD_START_ROUTINE StartAddress, |
| 387 IN PVOID Parameter, |
| 388 OUT PHANDLE Thread, |
| 389 OUT PCLIENT_ID ClientId); |
| 390 |
| 391 typedef NTSTATUS(WINAPI *RtlConvertSidToUnicodeStringFunction)( |
| 392 OUT PUNICODE_STRING UnicodeString, |
| 393 IN PSID Sid, |
| 394 IN BOOLEAN AllocateDestinationString); |
| 395 |
| 396 typedef VOID(WINAPI *RtlFreeUnicodeStringFunction)( |
| 397 IN OUT PUNICODE_STRING UnicodeString); |
383 | 398 |
384 // ----------------------------------------------------------------------- | 399 // ----------------------------------------------------------------------- |
385 // Registry | 400 // Registry |
386 | 401 |
| 402 typedef enum _KEY_VALUE_INFORMATION_CLASS { |
| 403 KeyValueFullInformation = 1 |
| 404 } KEY_VALUE_INFORMATION_CLASS, |
| 405 *PKEY_VALUE_INFORMATION_CLASS; |
| 406 |
| 407 typedef struct _KEY_VALUE_FULL_INFORMATION { |
| 408 ULONG TitleIndex; |
| 409 ULONG Type; |
| 410 ULONG DataOffset; |
| 411 ULONG DataLength; |
| 412 ULONG NameLength; |
| 413 WCHAR Name[1]; |
| 414 } KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION; |
| 415 |
387 typedef NTSTATUS (WINAPI *NtCreateKeyFunction)( | 416 typedef NTSTATUS (WINAPI *NtCreateKeyFunction)( |
388 OUT PHANDLE KeyHandle, | 417 OUT PHANDLE KeyHandle, |
389 IN ACCESS_MASK DesiredAccess, | 418 IN ACCESS_MASK DesiredAccess, |
390 IN POBJECT_ATTRIBUTES ObjectAttributes, | 419 IN POBJECT_ATTRIBUTES ObjectAttributes, |
391 IN ULONG TitleIndex, | 420 IN ULONG TitleIndex, |
392 IN PUNICODE_STRING Class OPTIONAL, | 421 IN PUNICODE_STRING Class OPTIONAL, |
393 IN ULONG CreateOptions, | 422 IN ULONG CreateOptions, |
394 OUT PULONG Disposition OPTIONAL); | 423 OUT PULONG Disposition OPTIONAL); |
395 | 424 |
396 typedef NTSTATUS (WINAPI *NtOpenKeyFunction)( | 425 typedef NTSTATUS (WINAPI *NtOpenKeyFunction)( |
397 OUT PHANDLE KeyHandle, | 426 OUT PHANDLE KeyHandle, |
398 IN ACCESS_MASK DesiredAccess, | 427 IN ACCESS_MASK DesiredAccess, |
399 IN POBJECT_ATTRIBUTES ObjectAttributes); | 428 IN POBJECT_ATTRIBUTES ObjectAttributes); |
400 | 429 |
401 typedef NTSTATUS (WINAPI *NtOpenKeyExFunction)( | 430 typedef NTSTATUS (WINAPI *NtOpenKeyExFunction)( |
402 OUT PHANDLE KeyHandle, | 431 OUT PHANDLE KeyHandle, |
403 IN ACCESS_MASK DesiredAccess, | 432 IN ACCESS_MASK DesiredAccess, |
404 IN POBJECT_ATTRIBUTES ObjectAttributes, | 433 IN POBJECT_ATTRIBUTES ObjectAttributes, |
405 IN DWORD open_options); | 434 IN DWORD open_options); |
406 | 435 |
407 typedef NTSTATUS (WINAPI *NtDeleteKeyFunction)( | 436 typedef NTSTATUS (WINAPI *NtDeleteKeyFunction)( |
408 IN HANDLE KeyHandle); | 437 IN HANDLE KeyHandle); |
409 | 438 |
| 439 typedef NTSTATUS(WINAPI *RtlFormatCurrentUserKeyPathFunction)( |
| 440 OUT PUNICODE_STRING RegistryPath); |
| 441 |
| 442 typedef NTSTATUS(WINAPI *NtQueryValueKeyFunction)(IN HANDLE KeyHandle, |
| 443 IN PUNICODE_STRING ValueName, |
| 444 IN KEY_VALUE_INFORMATION_CLASS |
| 445 KeyValueInformationClass, |
| 446 OUT PVOID KeyValueInformation, |
| 447 IN ULONG Length, |
| 448 OUT PULONG ResultLength); |
| 449 |
| 450 typedef NTSTATUS(WINAPI *NtSetValueKeyFunction)(IN HANDLE KeyHandle, |
| 451 IN PUNICODE_STRING ValueName, |
| 452 IN ULONG TitleIndex OPTIONAL, |
| 453 IN ULONG Type, |
| 454 IN PVOID Data, |
| 455 IN ULONG DataSize); |
| 456 |
410 // ----------------------------------------------------------------------- | 457 // ----------------------------------------------------------------------- |
411 // Memory | 458 // Memory |
412 | 459 |
413 // Don't really need this structure right now. | 460 // Don't really need this structure right now. |
414 typedef PVOID PRTL_HEAP_PARAMETERS; | 461 typedef PVOID PRTL_HEAP_PARAMETERS; |
415 | 462 |
416 typedef PVOID (WINAPI *RtlCreateHeapFunction)( | 463 typedef PVOID (WINAPI *RtlCreateHeapFunction)( |
417 IN ULONG Flags, | 464 IN ULONG Flags, |
418 IN PVOID HeapBase OPTIONAL, | 465 IN PVOID HeapBase OPTIONAL, |
419 IN SIZE_T ReserveSize OPTIONAL, | 466 IN SIZE_T ReserveSize OPTIONAL, |
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
694 | 741 |
695 struct PROCESS_ACCESS_TOKEN { | 742 struct PROCESS_ACCESS_TOKEN { |
696 HANDLE token; | 743 HANDLE token; |
697 HANDLE thread; | 744 HANDLE thread; |
698 }; | 745 }; |
699 | 746 |
700 const unsigned int NtProcessInformationAccessToken = 9; | 747 const unsigned int NtProcessInformationAccessToken = 9; |
701 | 748 |
702 #endif // SANDBOX_WIN_SRC_NT_INTERNALS_H__ | 749 #endif // SANDBOX_WIN_SRC_NT_INTERNALS_H__ |
703 | 750 |
OLD | NEW |