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

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

Issue 1856993003: Implement sandbox hooks to forward OPM related GDI system calls. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed header Created 4 years, 7 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 | « sandbox/win/src/ipc_tags.h ('k') | sandbox/win/src/policy_low_level.h » ('j') | 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 681 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 IN PVOID process_information, 692 IN PVOID process_information,
693 IN ULONG information_length); 693 IN ULONG information_length);
694 694
695 struct PROCESS_ACCESS_TOKEN { 695 struct PROCESS_ACCESS_TOKEN {
696 HANDLE token; 696 HANDLE token;
697 HANDLE thread; 697 HANDLE thread;
698 }; 698 };
699 699
700 const unsigned int NtProcessInformationAccessToken = 9; 700 const unsigned int NtProcessInformationAccessToken = 9;
701 701
702 // -----------------------------------------------------------------------
703 // GDI OPM API and Supported Calls
704
705 #define DXGKMDT_OPM_OMAC_SIZE 16
706 #define DXGKMDT_OPM_128_BIT_RANDOM_NUMBER_SIZE 16
707 #define DXGKMDT_OPM_ENCRYPTED_PARAMETERS_SIZE 256
708 #define DXGKMDT_OPM_CONFIGURE_SETTING_DATA_SIZE 4056
709 #define DXGKMDT_OPM_GET_INFORMATION_PARAMETERS_SIZE 4056
710 #define DXGKMDT_OPM_REQUESTED_INFORMATION_SIZE 4076
711 #define DXGKMDT_OPM_HDCP_KEY_SELECTION_VECTOR_SIZE 5
712 #define DXGKMDT_OPM_PROTECTION_TYPE_SIZE 4
713
714 enum DXGKMDT_CERTIFICATE_TYPE {
715 DXGKMDT_OPM_CERTIFICATE = 0,
716 DXGKMDT_COPP_CERTIFICATE = 1,
717 DXGKMDT_UAB_CERTIFICATE = 2,
718 DXGKMDT_FORCE_ULONG = 0xFFFFFFFF
719 };
720
721 enum DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS {
722 DXGKMDT_OPM_VOS_COPP_SEMANTICS = 0,
723 DXGKMDT_OPM_VOS_OPM_SEMANTICS = 1
724 };
725
726 enum DXGKMDT_DPCP_PROTECTION_LEVEL {
727 DXGKMDT_OPM_DPCP_OFF = 0,
728 DXGKMDT_OPM_DPCP_ON = 1,
729 DXGKMDT_OPM_DPCP_FORCE_ULONG = 0x7fffffff
730 };
731
732 enum DXGKMDT_OPM_HDCP_PROTECTION_LEVEL {
733 DXGKMDT_OPM_HDCP_OFF = 0,
734 DXGKMDT_OPM_HDCP_ON = 1,
735 DXGKMDT_OPM_HDCP_FORCE_ULONG = 0x7fffffff
736 };
737
738 enum DXGKMDT_OPM_HDCP_FLAG {
739 DXGKMDT_OPM_HDCP_FLAG_NONE = 0x00,
740 DXGKMDT_OPM_HDCP_FLAG_REPEATER = 0x01
741 };
742
743 enum DXGKMDT_OPM_PROTECTION_TYPE {
744 DXGKMDT_OPM_PROTECTION_TYPE_OTHER = 0x80000000,
745 DXGKMDT_OPM_PROTECTION_TYPE_NONE = 0x00000000,
746 DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP = 0x00000001,
747 DXGKMDT_OPM_PROTECTION_TYPE_ACP = 0x00000002,
748 DXGKMDT_OPM_PROTECTION_TYPE_CGMSA = 0x00000004,
749 DXGKMDT_OPM_PROTECTION_TYPE_HDCP = 0x00000008,
750 DXGKMDT_OPM_PROTECTION_TYPE_DPCP = 0x00000010,
751 DXGKMDT_OPM_PROTECTION_TYPE_MASK = 0x8000001F
752 };
753
754 typedef void* OPM_PROTECTED_OUTPUT_HANDLE;
755
756 struct DXGKMDT_OPM_ENCRYPTED_PARAMETERS {
757 BYTE abEncryptedParameters[DXGKMDT_OPM_ENCRYPTED_PARAMETERS_SIZE];
758 };
759
760 struct DXGKMDT_OPM_OMAC {
761 BYTE abOMAC[DXGKMDT_OPM_OMAC_SIZE];
762 };
763
764 struct DXGKMDT_OPM_CONFIGURE_PARAMETERS {
765 DXGKMDT_OPM_OMAC omac;
766 GUID guidSetting;
767 ULONG ulSequenceNumber;
768 ULONG cbParametersSize;
769 BYTE abParameters[DXGKMDT_OPM_CONFIGURE_SETTING_DATA_SIZE];
770 };
771
772 struct DXGKMDT_OPM_RANDOM_NUMBER {
773 BYTE abRandomNumber[DXGKMDT_OPM_128_BIT_RANDOM_NUMBER_SIZE];
774 };
775
776 struct DXGKMDT_OPM_GET_INFO_PARAMETERS {
777 DXGKMDT_OPM_OMAC omac;
778 DXGKMDT_OPM_RANDOM_NUMBER rnRandomNumber;
779 GUID guidInformation;
780 ULONG ulSequenceNumber;
781 ULONG cbParametersSize;
782 BYTE abParameters[DXGKMDT_OPM_GET_INFORMATION_PARAMETERS_SIZE];
783 };
784
785 struct DXGKMDT_OPM_REQUESTED_INFORMATION {
786 DXGKMDT_OPM_OMAC omac;
787 ULONG cbRequestedInformationSize;
788 BYTE abRequestedInformation[DXGKMDT_OPM_REQUESTED_INFORMATION_SIZE];
789 };
790
791 struct DXGKMDT_OPM_SET_PROTECTION_LEVEL_PARAMETERS {
792 ULONG ulProtectionType;
793 ULONG ulProtectionLevel;
794 ULONG Reserved;
795 ULONG Reserved2;
796 };
797
798 struct DXGKMDT_OPM_STANDARD_INFORMATION {
799 DXGKMDT_OPM_RANDOM_NUMBER rnRandomNumber;
800 ULONG ulStatusFlags;
801 ULONG ulInformation;
802 ULONG ulReserved;
803 ULONG ulReserved2;
804 };
805
806 typedef NTSTATUS(WINAPI* GetSuggestedOPMProtectedOutputArraySizeFunction)(
807 PUNICODE_STRING device_name,
808 DWORD* suggested_output_array_size);
809
810 typedef NTSTATUS(WINAPI* CreateOPMProtectedOutputsFunction)(
811 PUNICODE_STRING device_name,
812 DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS vos,
813 DWORD output_array_size,
814 DWORD* num_in_output_array,
815 OPM_PROTECTED_OUTPUT_HANDLE* output_array);
816
817 typedef NTSTATUS(WINAPI* GetCertificateFunction)(
818 PUNICODE_STRING device_name,
819 DXGKMDT_CERTIFICATE_TYPE certificate_type,
820 BYTE* certificate,
821 ULONG certificate_length);
822
823 typedef NTSTATUS(WINAPI* GetCertificateSizeFunction)(
824 PUNICODE_STRING device_name,
825 DXGKMDT_CERTIFICATE_TYPE certificate_type,
826 ULONG* certificate_length);
827
828 typedef NTSTATUS(WINAPI* GetCertificateByHandleFunction)(
829 OPM_PROTECTED_OUTPUT_HANDLE protected_output,
830 DXGKMDT_CERTIFICATE_TYPE certificate_type,
831 BYTE* certificate,
832 ULONG certificate_length);
833
834 typedef NTSTATUS(WINAPI* GetCertificateSizeByHandleFunction)(
835 OPM_PROTECTED_OUTPUT_HANDLE protected_output,
836 DXGKMDT_CERTIFICATE_TYPE certificate_type,
837 ULONG* certificate_length);
838
839 typedef NTSTATUS(WINAPI* DestroyOPMProtectedOutputFunction)(
840 OPM_PROTECTED_OUTPUT_HANDLE protected_output);
841
842 typedef NTSTATUS(WINAPI* ConfigureOPMProtectedOutputFunction)(
843 OPM_PROTECTED_OUTPUT_HANDLE protected_output,
844 const DXGKMDT_OPM_CONFIGURE_PARAMETERS* parameters,
845 ULONG additional_parameters_size,
846 const BYTE* additional_parameters);
847
848 typedef NTSTATUS(WINAPI* GetOPMInformationFunction)(
849 OPM_PROTECTED_OUTPUT_HANDLE protected_output,
850 const DXGKMDT_OPM_GET_INFO_PARAMETERS* parameters,
851 DXGKMDT_OPM_REQUESTED_INFORMATION* requested_information);
852
853 typedef NTSTATUS(WINAPI* GetOPMRandomNumberFunction)(
854 OPM_PROTECTED_OUTPUT_HANDLE protected_output,
855 DXGKMDT_OPM_RANDOM_NUMBER* random_number);
856
857 typedef NTSTATUS(WINAPI* SetOPMSigningKeyAndSequenceNumbersFunction)(
858 OPM_PROTECTED_OUTPUT_HANDLE protected_output,
859 const DXGKMDT_OPM_ENCRYPTED_PARAMETERS* parameters);
860
702 #endif // SANDBOX_WIN_SRC_NT_INTERNALS_H__ 861 #endif // SANDBOX_WIN_SRC_NT_INTERNALS_H__
703 862
OLDNEW
« no previous file with comments | « sandbox/win/src/ipc_tags.h ('k') | sandbox/win/src/policy_low_level.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698