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 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 union { | 326 union { |
327 DWORD UniqueProcessId; | 327 DWORD UniqueProcessId; |
328 PVOID padding_for_x64_2; | 328 PVOID padding_for_x64_2; |
329 }; | 329 }; |
330 union { | 330 union { |
331 DWORD InheritedFromUniqueProcessId; | 331 DWORD InheritedFromUniqueProcessId; |
332 PVOID padding_for_x64_3; | 332 PVOID padding_for_x64_3; |
333 }; | 333 }; |
334 } PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION; | 334 } PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION; |
335 | 335 |
336 typedef NTSTATUS (WINAPI *NtQueryInformationProcessFunction)( | 336 typedef NTSTATUS(WINAPI* NtQueryInformationProcessFunction)( |
337 IN HANDLE ProcessHandle, | 337 IN HANDLE ProcessHandle, |
338 IN PROCESSINFOCLASS ProcessInformationClass, | 338 IN PROCESSINFOCLASS ProcessInformationClass, |
339 OUT PVOID ProcessInformation, | 339 OUT PVOID ProcessInformation, |
340 IN ULONG ProcessInformationLength, | 340 IN ULONG ProcessInformationLength, |
341 OUT PULONG ReturnLength OPTIONAL); | 341 OUT PULONG ReturnLength OPTIONAL); |
342 | 342 |
343 typedef NTSTATUS (WINAPI *NtSetInformationProcessFunction)( | 343 typedef NTSTATUS(WINAPI* NtSetInformationProcessFunction)( |
344 HANDLE ProcessHandle, | 344 HANDLE ProcessHandle, |
345 IN PROCESSINFOCLASS ProcessInformationClass, | 345 IN PROCESSINFOCLASS ProcessInformationClass, |
346 IN PVOID ProcessInformation, | 346 IN PVOID ProcessInformation, |
347 IN ULONG ProcessInformationLength); | 347 IN ULONG ProcessInformationLength); |
348 | 348 |
349 typedef NTSTATUS (WINAPI *NtOpenThreadTokenFunction) ( | 349 typedef NTSTATUS (WINAPI *NtOpenThreadTokenFunction) ( |
350 IN HANDLE ThreadHandle, | 350 IN HANDLE ThreadHandle, |
351 IN ACCESS_MASK DesiredAccess, | 351 IN ACCESS_MASK DesiredAccess, |
352 IN BOOLEAN OpenAsSelf, | 352 IN BOOLEAN OpenAsSelf, |
353 OUT PHANDLE TokenHandle); | 353 OUT PHANDLE TokenHandle); |
354 | 354 |
355 typedef NTSTATUS (WINAPI *NtOpenThreadTokenExFunction) ( | 355 typedef NTSTATUS (WINAPI *NtOpenThreadTokenExFunction) ( |
356 IN HANDLE ThreadHandle, | 356 IN HANDLE ThreadHandle, |
357 IN ACCESS_MASK DesiredAccess, | 357 IN ACCESS_MASK DesiredAccess, |
358 IN BOOLEAN OpenAsSelf, | 358 IN BOOLEAN OpenAsSelf, |
359 IN ULONG HandleAttributes, | 359 IN ULONG HandleAttributes, |
360 OUT PHANDLE TokenHandle); | 360 OUT PHANDLE TokenHandle); |
361 | 361 |
362 typedef NTSTATUS (WINAPI *NtOpenProcessTokenFunction) ( | 362 typedef NTSTATUS (WINAPI *NtOpenProcessTokenFunction) ( |
363 IN HANDLE ProcessHandle, | 363 IN HANDLE ProcessHandle, |
364 IN ACCESS_MASK DesiredAccess, | 364 IN ACCESS_MASK DesiredAccess, |
365 OUT PHANDLE TokenHandle); | 365 OUT PHANDLE TokenHandle); |
366 | 366 |
367 typedef NTSTATUS (WINAPI *NtOpenProcessTokenExFunction) ( | 367 typedef NTSTATUS (WINAPI *NtOpenProcessTokenExFunction) ( |
368 IN HANDLE ProcessHandle, | 368 IN HANDLE ProcessHandle, |
369 IN ACCESS_MASK DesiredAccess, | 369 IN ACCESS_MASK DesiredAccess, |
370 IN ULONG HandleAttributes, | 370 IN ULONG HandleAttributes, |
371 OUT PHANDLE TokenHandle); | 371 OUT PHANDLE TokenHandle); |
372 | 372 |
373 typedef NTSTATUS (WINAPI * RtlCreateUserThreadFunction)( | 373 typedef NTSTATUS(WINAPI* NtQueryInformationTokenFunction)( |
374 IN HANDLE Process, | 374 IN HANDLE TokenHandle, |
375 IN PSECURITY_DESCRIPTOR ThreadSecurityDescriptor, | 375 IN TOKEN_INFORMATION_CLASS TokenInformationClass, |
376 IN BOOLEAN CreateSuspended, | 376 OUT PVOID TokenInformation, |
377 IN ULONG ZeroBits, | 377 IN ULONG TokenInformationLength, |
378 IN SIZE_T MaximumStackSize, | 378 OUT PULONG ReturnLength); |
379 IN SIZE_T CommittedStackSize, | 379 |
380 IN LPTHREAD_START_ROUTINE StartAddress, | 380 typedef NTSTATUS(WINAPI* RtlCreateUserThreadFunction)( |
381 IN PVOID Parameter, | 381 IN HANDLE Process, |
382 OUT PHANDLE Thread, | 382 IN PSECURITY_DESCRIPTOR ThreadSecurityDescriptor, |
383 OUT PCLIENT_ID ClientId); | 383 IN BOOLEAN CreateSuspended, |
| 384 IN ULONG ZeroBits, |
| 385 IN SIZE_T MaximumStackSize, |
| 386 IN SIZE_T CommittedStackSize, |
| 387 IN LPTHREAD_START_ROUTINE StartAddress, |
| 388 IN PVOID Parameter, |
| 389 OUT PHANDLE Thread, |
| 390 OUT PCLIENT_ID ClientId); |
| 391 |
| 392 typedef NTSTATUS(WINAPI* RtlConvertSidToUnicodeStringFunction)( |
| 393 OUT PUNICODE_STRING UnicodeString, |
| 394 IN PSID Sid, |
| 395 IN BOOLEAN AllocateDestinationString); |
| 396 |
| 397 typedef VOID(WINAPI* RtlFreeUnicodeStringFunction)( |
| 398 IN OUT PUNICODE_STRING UnicodeString); |
384 | 399 |
385 // ----------------------------------------------------------------------- | 400 // ----------------------------------------------------------------------- |
386 // Registry | 401 // Registry |
387 | 402 |
| 403 typedef enum _KEY_VALUE_INFORMATION_CLASS { |
| 404 KeyValueFullInformation = 1 |
| 405 } KEY_VALUE_INFORMATION_CLASS, |
| 406 *PKEY_VALUE_INFORMATION_CLASS; |
| 407 |
| 408 typedef struct _KEY_VALUE_FULL_INFORMATION { |
| 409 ULONG TitleIndex; |
| 410 ULONG Type; |
| 411 ULONG DataOffset; |
| 412 ULONG DataLength; |
| 413 ULONG NameLength; |
| 414 WCHAR Name[1]; |
| 415 } KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION; |
| 416 |
388 typedef NTSTATUS (WINAPI *NtCreateKeyFunction)( | 417 typedef NTSTATUS (WINAPI *NtCreateKeyFunction)( |
389 OUT PHANDLE KeyHandle, | 418 OUT PHANDLE KeyHandle, |
390 IN ACCESS_MASK DesiredAccess, | 419 IN ACCESS_MASK DesiredAccess, |
391 IN POBJECT_ATTRIBUTES ObjectAttributes, | 420 IN POBJECT_ATTRIBUTES ObjectAttributes, |
392 IN ULONG TitleIndex, | 421 IN ULONG TitleIndex, |
393 IN PUNICODE_STRING Class OPTIONAL, | 422 IN PUNICODE_STRING Class OPTIONAL, |
394 IN ULONG CreateOptions, | 423 IN ULONG CreateOptions, |
395 OUT PULONG Disposition OPTIONAL); | 424 OUT PULONG Disposition OPTIONAL); |
396 | 425 |
397 typedef NTSTATUS (WINAPI *NtOpenKeyFunction)( | 426 typedef NTSTATUS (WINAPI *NtOpenKeyFunction)( |
398 OUT PHANDLE KeyHandle, | 427 OUT PHANDLE KeyHandle, |
399 IN ACCESS_MASK DesiredAccess, | 428 IN ACCESS_MASK DesiredAccess, |
400 IN POBJECT_ATTRIBUTES ObjectAttributes); | 429 IN POBJECT_ATTRIBUTES ObjectAttributes); |
401 | 430 |
402 typedef NTSTATUS (WINAPI *NtOpenKeyExFunction)( | 431 typedef NTSTATUS (WINAPI *NtOpenKeyExFunction)( |
403 OUT PHANDLE KeyHandle, | 432 OUT PHANDLE KeyHandle, |
404 IN ACCESS_MASK DesiredAccess, | 433 IN ACCESS_MASK DesiredAccess, |
405 IN POBJECT_ATTRIBUTES ObjectAttributes, | 434 IN POBJECT_ATTRIBUTES ObjectAttributes, |
406 IN DWORD open_options); | 435 IN DWORD open_options); |
407 | 436 |
408 typedef NTSTATUS (WINAPI *NtDeleteKeyFunction)( | 437 typedef NTSTATUS (WINAPI *NtDeleteKeyFunction)( |
409 IN HANDLE KeyHandle); | 438 IN HANDLE KeyHandle); |
410 | 439 |
| 440 typedef NTSTATUS(WINAPI* RtlFormatCurrentUserKeyPathFunction)( |
| 441 OUT PUNICODE_STRING RegistryPath); |
| 442 |
| 443 typedef NTSTATUS(WINAPI* NtQueryValueKeyFunction)(IN HANDLE KeyHandle, |
| 444 IN PUNICODE_STRING ValueName, |
| 445 IN KEY_VALUE_INFORMATION_CLASS |
| 446 KeyValueInformationClass, |
| 447 OUT PVOID KeyValueInformation, |
| 448 IN ULONG Length, |
| 449 OUT PULONG ResultLength); |
| 450 |
| 451 typedef NTSTATUS(WINAPI* NtSetValueKeyFunction)(IN HANDLE KeyHandle, |
| 452 IN PUNICODE_STRING ValueName, |
| 453 IN ULONG TitleIndex OPTIONAL, |
| 454 IN ULONG Type, |
| 455 IN PVOID Data, |
| 456 IN ULONG DataSize); |
| 457 |
411 // ----------------------------------------------------------------------- | 458 // ----------------------------------------------------------------------- |
412 // Memory | 459 // Memory |
413 | 460 |
414 // Don't really need this structure right now. | 461 // Don't really need this structure right now. |
415 typedef PVOID PRTL_HEAP_PARAMETERS; | 462 typedef PVOID PRTL_HEAP_PARAMETERS; |
416 | 463 |
417 typedef PVOID (WINAPI *RtlCreateHeapFunction)( | 464 typedef PVOID (WINAPI *RtlCreateHeapFunction)( |
418 IN ULONG Flags, | 465 IN ULONG Flags, |
419 IN PVOID HeapBase OPTIONAL, | 466 IN PVOID HeapBase OPTIONAL, |
420 IN SIZE_T ReserveSize OPTIONAL, | 467 IN SIZE_T ReserveSize OPTIONAL, |
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
856 typedef NTSTATUS(WINAPI* GetOPMRandomNumberFunction)( | 903 typedef NTSTATUS(WINAPI* GetOPMRandomNumberFunction)( |
857 OPM_PROTECTED_OUTPUT_HANDLE protected_output, | 904 OPM_PROTECTED_OUTPUT_HANDLE protected_output, |
858 DXGKMDT_OPM_RANDOM_NUMBER* random_number); | 905 DXGKMDT_OPM_RANDOM_NUMBER* random_number); |
859 | 906 |
860 typedef NTSTATUS(WINAPI* SetOPMSigningKeyAndSequenceNumbersFunction)( | 907 typedef NTSTATUS(WINAPI* SetOPMSigningKeyAndSequenceNumbersFunction)( |
861 OPM_PROTECTED_OUTPUT_HANDLE protected_output, | 908 OPM_PROTECTED_OUTPUT_HANDLE protected_output, |
862 const DXGKMDT_OPM_ENCRYPTED_PARAMETERS* parameters); | 909 const DXGKMDT_OPM_ENCRYPTED_PARAMETERS* parameters); |
863 | 910 |
864 #endif // SANDBOX_WIN_SRC_NT_INTERNALS_H__ | 911 #endif // SANDBOX_WIN_SRC_NT_INTERNALS_H__ |
865 | 912 |
OLD | NEW |