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 681 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 |
OLD | NEW |