STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
cfguard.h
Go to the documentation of this file.
1 //
2 // cfguard.h
3 //
4 // Copyright (c) Microsoft Corporation. All rights reserved.
5 //
6 // Declarations of Control Flow Guard instrumentation and support functions.
7 //
8 #pragma once
9 #ifndef _CFGUARD_H
10 #define _CFGUARD_H
11 
12 #include <sal.h>
13 #include <vadefs.h>
14 
15 #pragma pack(push, _CRT_PACKING)
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #if !defined(__midl) && !defined(MIDL_PASS)
22 
23  #ifdef _M_ARM64
24  #define _guard_check_icall __guard_check_icall_thunk
25  #endif
26 
27  #ifdef _M_CEE
28  // This is a placeholder. Control Flow Guard is not implemented for /clr.
30  #else
31  void __fastcall _guard_check_icall(_In_ uintptr_t _Target);
32  #endif
33 
34  int __cdecl _guard_icall_checks_enforced(void);
35 
36 #endif // !defined(__midl) && !defined(MIDL_PASS)
37 
38 #ifdef __cplusplus
39 } // extern "C"
40 #endif
41 
42 #pragma pack(pop)
43 
44 #endif // _CFGUARD_H
unsigned int uintptr_t
Definition: vadefs.h:30
void __fastcall _guard_check_icall(_In_ uintptr_t _Target)
#define _In_
Definition: sal.h:305
int __cdecl _guard_icall_checks_enforced(void)
const void * _Target(const type_info &_Info) const _NOEXCEPT
Definition: functional:408