|
1 | 1 | ---
|
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 |
6 | 5 | ---
|
7 |
| -# /INTEGRITYCHECK (Require Signature Check) |
| 6 | +# `/INTEGRITYCHECK` (Require signature check) |
8 | 7 |
|
9 | 8 | Specifies that the digital signature of the binary image must be checked at load time.
|
10 | 9 |
|
11 |
| -``` |
12 |
| -/INTEGRITYCHECK[:NO] |
13 |
| -``` |
| 10 | +> **`/INTEGRITYCHECK`**[**`:NO`**] |
14 | 11 |
|
15 | 12 | ## Remarks
|
16 | 13 |
|
17 |
| -By default, **/INTEGRITYCHECK** is off. |
| 14 | +By default, **`/INTEGRITYCHECK`** is off. |
18 | 15 |
|
19 |
| -The **/INTEGRITYCHECK** option sets—in 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). |
20 | 17 |
|
21 |
| -### To set this linker option in Visual Studio |
| 18 | +### Signing `/INTEGRITYCHECK` files |
22 | 19 |
|
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. |
24 | 21 |
|
25 |
| -1. Expand the **Configuration Properties** node. |
| 22 | +### To set this linker option in Visual Studio |
26 | 23 |
|
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). |
28 | 25 |
|
29 |
| -1. Select the **Command Line** property page. |
| 26 | +1. Select the **Configuration Properties** > **Linker** > **Command Line** property page. |
30 | 27 |
|
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. |
32 | 29 |
|
33 | 30 | ## See also
|
34 | 31 |
|
35 | 32 | [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/> |
39 | 36 | [AppInit DLLs and Secure Boot](/windows/win32/dlls/secure-boot-and-appinit-dlls)
|
0 commit comments