Index: sandbox/win/src/interceptors_64.cc |
diff --git a/sandbox/win/src/interceptors_64.cc b/sandbox/win/src/interceptors_64.cc |
index a9b38b69ddfa2ab773f9505db87b348e1c800886..0e9142467a899e7b5713c687e9127c1b1b4d3985 100644 |
--- a/sandbox/win/src/interceptors_64.cc |
+++ b/sandbox/win/src/interceptors_64.cc |
@@ -289,4 +289,165 @@ SANDBOX_INTERCEPT ATOM WINAPI TargetRegisterClassW64( |
return TargetRegisterClassW(orig_fn, wnd_class); |
} |
+SANDBOX_INTERCEPT BOOL WINAPI |
+TargetEnumDisplayMonitors64(HDC hdc, |
+ LPCRECT clip_rect, |
+ MONITORENUMPROC enum_function, |
+ LPARAM data_pointer) { |
+ EnumDisplayMonitorsFunction orig_fn = |
+ reinterpret_cast<EnumDisplayMonitorsFunction>( |
+ g_originals[ENUMDISPLAYMONITORS_ID]); |
+ return TargetEnumDisplayMonitors(orig_fn, hdc, clip_rect, enum_function, |
+ data_pointer); |
+} |
+ |
+SANDBOX_INTERCEPT BOOL WINAPI |
+TargetEnumDisplayDevicesA64(LPCSTR device, |
+ DWORD device_num, |
+ PDISPLAY_DEVICEA display_device, |
+ DWORD flags) { |
+ EnumDisplayDevicesAFunction orig_fn = |
+ reinterpret_cast<EnumDisplayDevicesAFunction>( |
+ g_originals[ENUMDISPLAYDEVICESA_ID]); |
+ return TargetEnumDisplayDevicesA(orig_fn, device, device_num, display_device, |
+ flags); |
+} |
+ |
+SANDBOX_INTERCEPT BOOL WINAPI |
+TargetGetMonitorInfoA64(HMONITOR monitor, LPMONITORINFO monitor_info) { |
+ GetMonitorInfoAFunction orig_fn = reinterpret_cast<GetMonitorInfoAFunction>( |
+ g_originals[GETMONITORINFOA_ID]); |
+ return TargetGetMonitorInfoA(orig_fn, monitor, monitor_info); |
+} |
+ |
+SANDBOX_INTERCEPT BOOL WINAPI |
+TargetGetMonitorInfoW64(HMONITOR monitor, LPMONITORINFO monitor_info) { |
+ GetMonitorInfoWFunction orig_fn = reinterpret_cast<GetMonitorInfoWFunction>( |
+ g_originals[GETMONITORINFOW_ID]); |
+ return TargetGetMonitorInfoW(orig_fn, monitor, monitor_info); |
+} |
+ |
+SANDBOX_INTERCEPT NTSTATUS WINAPI |
+TargetGetSuggestedOPMProtectedOutputArraySize64( |
+ PUNICODE_STRING device_name, |
+ DWORD* suggested_output_array_size) { |
+ GetSuggestedOPMProtectedOutputArraySizeFunction orig_fn = |
+ reinterpret_cast<GetSuggestedOPMProtectedOutputArraySizeFunction>( |
+ g_originals[GETSUGGESTEDOPMPROTECTEDOUTPUTARRAYSIZE_ID]); |
+ return TargetGetSuggestedOPMProtectedOutputArraySize( |
+ orig_fn, device_name, suggested_output_array_size); |
+} |
+ |
+SANDBOX_INTERCEPT NTSTATUS WINAPI TargetCreateOPMProtectedOutputs64( |
+ PUNICODE_STRING device_name, |
+ DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS vos, |
+ DWORD protected_output_array_size, |
+ DWORD* num_output_handles, |
+ OPM_PROTECTED_OUTPUT_HANDLE* protected_output_array) { |
+ CreateOPMProtectedOutputsFunction orig_fn = |
+ reinterpret_cast<CreateOPMProtectedOutputsFunction>( |
+ g_originals[CREATEOPMPROTECTEDOUTPUTS_ID]); |
+ return TargetCreateOPMProtectedOutputs( |
+ orig_fn, device_name, vos, protected_output_array_size, |
+ num_output_handles, protected_output_array); |
+} |
+ |
+SANDBOX_INTERCEPT NTSTATUS WINAPI |
+TargetGetCertificate64(PUNICODE_STRING device_name, |
+ DXGKMDT_CERTIFICATE_TYPE certificate_type, |
+ BYTE* certificate, |
+ ULONG certificate_length) { |
+ GetCertificateFunction orig_fn = |
+ reinterpret_cast<GetCertificateFunction>(g_originals[GETCERTIFICATE_ID]); |
+ return TargetGetCertificate(orig_fn, device_name, certificate_type, |
+ certificate, certificate_length); |
+} |
+ |
+SANDBOX_INTERCEPT NTSTATUS WINAPI |
+TargetGetCertificateSize64(PUNICODE_STRING device_name, |
+ DXGKMDT_CERTIFICATE_TYPE certificate_type, |
+ ULONG* certificate_length) { |
+ GetCertificateSizeFunction orig_fn = |
+ reinterpret_cast<GetCertificateSizeFunction>( |
+ g_originals[GETCERTIFICATESIZE_ID]); |
+ return TargetGetCertificateSize(orig_fn, device_name, certificate_type, |
+ certificate_length); |
+} |
+ |
+SANDBOX_INTERCEPT NTSTATUS WINAPI |
+TargetGetCertificateByHandle64(OPM_PROTECTED_OUTPUT_HANDLE protected_output, |
+ DXGKMDT_CERTIFICATE_TYPE certificate_type, |
+ BYTE* certificate, |
+ ULONG certificate_length) { |
+ GetCertificateByHandleFunction orig_fn = |
+ reinterpret_cast<GetCertificateByHandleFunction>( |
+ g_originals[GETCERTIFICATE_ID]); |
+ return TargetGetCertificateByHandle(orig_fn, protected_output, |
+ certificate_type, certificate, |
+ certificate_length); |
+} |
+ |
+SANDBOX_INTERCEPT NTSTATUS WINAPI |
+TargetGetCertificateSizeByHandle64( |
+ OPM_PROTECTED_OUTPUT_HANDLE protected_output, |
+ DXGKMDT_CERTIFICATE_TYPE certificate_type, |
+ ULONG* certificate_length) { |
+ GetCertificateSizeByHandleFunction orig_fn = |
+ reinterpret_cast<GetCertificateSizeByHandleFunction>( |
+ g_originals[GETCERTIFICATESIZE_ID]); |
+ return TargetGetCertificateSizeByHandle(orig_fn, protected_output, |
+ certificate_type, certificate_length); |
+} |
+ |
+SANDBOX_INTERCEPT NTSTATUS WINAPI TargetDestroyOPMProtectedOutput64( |
+ OPM_PROTECTED_OUTPUT_HANDLE protected_output) { |
+ DestroyOPMProtectedOutputFunction orig_fn = |
+ reinterpret_cast<DestroyOPMProtectedOutputFunction>( |
+ g_originals[DESTROYOPMPROTECTEDOUTPUT_ID]); |
+ return TargetDestroyOPMProtectedOutput(orig_fn, protected_output); |
+} |
+ |
+SANDBOX_INTERCEPT NTSTATUS WINAPI |
+TargetGetOPMInformation64(OPM_PROTECTED_OUTPUT_HANDLE protected_output, |
+ const DXGKMDT_OPM_GET_INFO_PARAMETERS* parameters, |
+ DXGKMDT_OPM_REQUESTED_INFORMATION* requested_info) { |
+ GetOPMInformationFunction orig_fn = |
+ reinterpret_cast<GetOPMInformationFunction>( |
+ g_originals[GETOPMINFORMATION_ID]); |
+ return TargetGetOPMInformation(orig_fn, protected_output, parameters, |
+ requested_info); |
+} |
+ |
+SANDBOX_INTERCEPT NTSTATUS WINAPI |
+TargetGetOPMRandomNumber64(OPM_PROTECTED_OUTPUT_HANDLE protected_output, |
+ DXGKMDT_OPM_RANDOM_NUMBER* random_number) { |
+ GetOPMRandomNumberFunction orig_fn = |
+ reinterpret_cast<GetOPMRandomNumberFunction>( |
+ g_originals[GETOPMRANDOMNUMBER_ID]); |
+ return TargetGetOPMRandomNumber(orig_fn, protected_output, random_number); |
+} |
+ |
+SANDBOX_INTERCEPT NTSTATUS WINAPI TargetSetOPMSigningKeyAndSequenceNumbers64( |
+ OPM_PROTECTED_OUTPUT_HANDLE protected_output, |
+ const DXGKMDT_OPM_ENCRYPTED_PARAMETERS* parameters) { |
+ SetOPMSigningKeyAndSequenceNumbersFunction orig_fn = |
+ reinterpret_cast<SetOPMSigningKeyAndSequenceNumbersFunction>( |
+ g_originals[SETOPMSIGNINGKEYANDSEQUENCENUMBERS_ID]); |
+ return TargetSetOPMSigningKeyAndSequenceNumbers(orig_fn, protected_output, |
+ parameters); |
+} |
+ |
+SANDBOX_INTERCEPT NTSTATUS WINAPI TargetConfigureOPMProtectedOutput64( |
+ OPM_PROTECTED_OUTPUT_HANDLE protected_output, |
+ const DXGKMDT_OPM_CONFIGURE_PARAMETERS* parameters, |
+ ULONG additional_parameters_size, |
+ const BYTE* additional_parameters) { |
+ ConfigureOPMProtectedOutputFunction orig_fn = |
+ reinterpret_cast<ConfigureOPMProtectedOutputFunction>( |
+ g_originals[CONFIGUREOPMPROTECTEDOUTPUT_ID]); |
+ return TargetConfigureOPMProtectedOutput( |
+ orig_fn, protected_output, parameters, additional_parameters_size, |
+ additional_parameters); |
+} |
+ |
} // namespace sandbox |