Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1422)

Side by Side Diff: sandbox/win/src/nt_internals.h

Issue 1841573002: [Chrome ELF] New NT registry API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: PRESUBMIT to allow chrome_elf directory files to use wstring. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome_elf/thunk_getter.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « chrome_elf/thunk_getter.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698