How to determine that hardware DEP is available and configured on your computer
This article is from Microsoft. Article ID 912923 written January 5, 2006
On this Page
INTRODUCTION
Hardware-enforced DEP marks all memory locations in a process as non-executable unless the location explicitly contains executable code. One kind of malicious code attacks tries to insert and run code from non-executable memory locations. DEP helps prevent these attacks by intercepting them and raising an exception.
This article describes the requirements for using hardware-enforced DEP. This article also describes how to confirm that hardware DEP is working in Windows.
MORE INFORMATION
Requirements for using hardware-enforced DEP
- The computer's processor must support hardware-enforced. DEP. Many recent processors support hardware-enforced DEP. Both Advanced Micro Devices (AMD) and Intel Corporation have defined and shipped Windows-compatible architectures that are compatible with DEP. This processor support may be known as NX( (no-execute) or XD (execute disable) technology. To determine whether your computer's processor supports hardware-enforced DEP, contact the manufacturer of your computer.
- Hardware-enforced DEP must be enabled in the BIOS. On some computers, you can disable processor support for hardware-enforced DEP in the BIOS. You must not disable this support. Depending on your computer manufacturer, the option to disable this support may be labeled "Data Execution Prevention," "XD," "Execute Disable," or "NX."
- The computer must have Windows XP with Service Pack 2 or Windows Server 2003 with Service Pack 1 installed. Note Both 32-bit versions and 64-bit versions of Windows support hardware-enforced DEP. Windows XP Media Center Edition 2005 and Microsoft Windows XP Tablet PC Edition 2005 include all the features and components of Windows XP SP2.
- Hardware-enforced DEP must be enabled for programs on the computer. In 64-bit versions of Windows, hardware-enforced DEP is always enabled for 64-bit native programs. However, depending on your configuration, hardware-enforced DEP may be disabled for 32-bit programs.
How to confirm that hardware DEP is working in Windows
To confirm that hardware DEP is working in Windows, use one of the following methods.Method 1: Use the Wmic command-line tool
You can use the Wmic command-line tool to examine the DEP settings. To determine whether hardware-enforced DEP is available, follow these steps:- Open the Run or Search window
-
Press Enter
- Type wmic os get DataExecutionPrevention_Available
- Press Enter
- If the output is "TRUE," hardware-enforced DEP is available.
To determine the current DEP support policy, follow these steps
- Open the Run or Search window
-
Press Enter
- Type wmic OS Get DataExecutionPrevention_SupportPolicy
- Press Enter
- The value returned will be 0, 1, 2 or 3.
- This value corresponds to one of the DEP support policies that are described in the following table
DataExecution Prevention_ Support Policy property value | Policy Level | Description |
2 | OptIn (default configuration) | Only Windows system components and services have DEP applied |
3 | OptOut | DEP is enabled for all processes. Administrators can manually create a list of specific applications which do not have DEP applied |
1 | AlwaysOn | DEP is enabled for all processes |
0 | AlwaysOff | DEP is not enabled for any processes |
Method 2: Use the graphical user interface
To use the graphical user interface to determine whether DEP is available, follow these steps:- Open the Run or Search window
- Type wbemtest
-
Press Enter
- In the Windows Management Instrumentation Tester dialog box, click Connect
- In the box at the top of the Connect dialog box, type root\cimv2
- Click Connect
- Click Enum Instances
- In the Class Info dialog box, type Win23_OperatingSystem in the Enter superclass name box.
-
Click OK
- In the Query Result dialog box, Double-click the top item. Note This item starts with"Win32_operatingSystem.Name= Microsoft..."
- In the Object editor dialog box, locate the DataExecutionPrevention_Available property in the properties area.
- Double-click DataExecutionPrevention_Available.
- In the Property Editor dialog box, note the value in the Value box
- If the value is TRUE, hardware DEP is available.
- To determine the mode in which DEP is running, examine the DataExecutionPrevention_SupportPolicy property of the Win32_OperatingSystem class. The table at the end of Method 1 describes each support policy value.
- To verify that hardware DEP is enabled in Windows, examine the DataExecutionPrevention_Drivers property of the Win32_OperatingSystem class. In some system configurations, hardware DEP may be disabled by using the /nopae or /execute switches in the Boot.ini file.
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, regarding the performance or reliability of these products.
-
Microsoft Windows Server 2003 Service Pack 1, when used with:
- Microsoft Windows Server 2003, Web Edition
- Microsoft Windows Server 2003, Standard Edition (32-bit x86)
- Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
- Microsoft Windows Server 003, Enterprise Edition (32-bit x86)
- Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
- Microsoft Windows XP Service Pack 2
- Microsoft Windows XP Tablet PC Edition 2005