| 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 |