Skip to content

Commit b702e24

Browse files
author
Colin Robertson
authored
Merge pull request MicrosoftDocs#3094 from jgeurten/patch-1
Updated signing guidance for integritycheck binaries
2 parents 9f7d95f + 4a12ee0 commit b702e24

File tree

1 file changed

+16
-19
lines changed

1 file changed

+16
-19
lines changed
Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,36 @@
11
---
2-
description: "Learn more about: /INTEGRITYCHECK (Require Signature Check)"
3-
title: "/INTEGRITYCHECK (Require Signature Check)"
4-
ms.date: "11/04/2016"
5-
ms.assetid: 9e738825-2c98-40cd-8ad2-5d0d9c14893e
2+
description: "Learn more about: /INTEGRITYCHECK (Require signature check)"
3+
title: "/INTEGRITYCHECK (Require signature check)"
4+
ms.date: 04/21/2021
65
---
7-
# /INTEGRITYCHECK (Require Signature Check)
6+
# `/INTEGRITYCHECK` (Require signature check)
87

98
Specifies that the digital signature of the binary image must be checked at load time.
109

11-
```
12-
/INTEGRITYCHECK[:NO]
13-
```
10+
> **`/INTEGRITYCHECK`**[**`:NO`**]
1411
1512
## Remarks
1613

17-
By default, **/INTEGRITYCHECK** is off.
14+
By default, **`/INTEGRITYCHECK`** is off.
1815

19-
The **/INTEGRITYCHECK** option setsin the PE header of the DLL file or executable file—a flag for the memory manager to check for a digital signature in order to load the image in Windows. This option must be set for both 32-bit and 64-bit DLLs that implement kernel-mode code loaded by certain Windows features, and is recommended for all device drivers on Windows Vista, Windows 7, Windows 8, Windows Server 2008, and Windows Server 2012. Versions of Windows prior to Windows Vista ignore this flag. For more information, see [Forced Integrity Signing of Portable Executable (PE) files](https://social.technet.microsoft.com/wiki/contents/articles/255.forced-integrity-signing-of-portable-executable-pe-files.aspx).
16+
The **`/INTEGRITYCHECK`** linker option sets a flag, `IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY`, in the PE header of the DLL file or executable file. This flag tells the memory manager to check for a digital signature in order to load the image in Windows. This option must be set for both 32-bit and 64-bit DLLs that implement kernel-mode code loaded by certain Windows features. It's recommended for all device drivers on Windows Vista, Windows Server 2008, and all later versions of Windows and Windows Server. Versions of Windows prior to Windows Vista ignore this flag. For more information, see [Forced Integrity Signing of Portable Executable (PE) files](https://social.technet.microsoft.com/wiki/contents/articles/255.forced-integrity-signing-of-portable-executable-pe-files.aspx).
2017

21-
### To set this linker option in Visual Studio
18+
### Signing `/INTEGRITYCHECK` files
2219

23-
1. Open the project **Property Pages** dialog box. For more information, see [Set C++ compiler and build properties in Visual Studio](../working-with-project-properties.md).
20+
Microsoft has new signing guidance for DLL and executable files linked by using **`/INTEGRITYCHECK`**. The guidance used to recommend a cross-signed certificate from the [cross-signing program](/windows-hardware/drivers/install/cross-certificates-for-kernel-mode-code-signing). However, the [cross-signing program is now deprecated](/windows-hardware/drivers/install/deprecation-of-software-publisher-certificates-and-commercial-release-certificates). We recommend you sign your **`/INTEGRITYCHECK`** files by using the Microsoft [Azure Code Signing](https://techcommunity.microsoft.com/t5/video-hub/reduce-developer-friction-with-azure-code-signing/m-p/1698637) program instead.
2421

25-
1. Expand the **Configuration Properties** node.
22+
### To set this linker option in Visual Studio
2623

27-
1. Expand the **Linker** node.
24+
1. Open the project **Property Pages** dialog box. For more information, see [Set C++ compiler and build properties in Visual Studio](../working-with-project-properties.md).
2825

29-
1. Select the **Command Line** property page.
26+
1. Select the **Configuration Properties** > **Linker** > **Command Line** property page.
3027

31-
1. In **Additional Options**, enter `/INTEGRITYCHECK` or `/INTEGRITYCHECK:NO`.
28+
1. In **Additional Options**, enter *`/INTEGRITYCHECK`* or *`/INTEGRITYCHECK:NO`*. Choose **OK** to save your changes.
3229

3330
## See also
3431

3532
[MSVC linker reference](linking.md)<br/>
36-
[MSVC Linker Options](linker-options.md)<br/>
37-
[Forced Integrity Signing of Portable Executable (PE) files](https://social.technet.microsoft.com/wiki/contents/articles/255.forced-integrity-signing-of-portable-executable-pe-files.aspx)<br/>
38-
[Kernel-Mode Code Signing Requirements](/windows-hardware/drivers/install/kernel-mode-code-signing-requirements--windows-vista-and-later-)<br/>
33+
[MSVC linker options](linker-options.md)<br/>
34+
[Forced integrity signing of portable executable (PE) files](https://social.technet.microsoft.com/wiki/contents/articles/255.forced-integrity-signing-of-portable-executable-pe-files.aspx)<br/>
35+
[Kernel-mode code signing requirements](/windows-hardware/drivers/install/kernel-mode-code-signing-requirements--windows-vista-and-later-)<br/>
3936
[AppInit DLLs and Secure Boot](/windows/win32/dlls/secure-boot-and-appinit-dlls)

0 commit comments

Comments
 (0)