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

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: Clean up OverrideRegistry function. Created 4 years, 8 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
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 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
OLDNEW
« chrome_elf/chrome_elf_reg.cc ('K') | « chrome_elf/chrome_elf_util_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698