What is DEP (Data Execution Prevention)

Q: What is DEP (Data Execution Prevention).

A: Data Execution Prevention is a mechanism built into some CPU's to check whether or not the data within a particular chunk of memory is tagged as code or as data before allowing any address in that chunk of memory to be used by the CPU to execute any instructions.

In other words, if an area of memory is tagged as containing *data*, the CPU will not permit the data in that area to be executed. Instead its supposed to generate an exception.
This makes it more difficult for a virus to insert code into memory and take illicit control of a computer.

For DEP to work, the operating system has to support setting it up and making the memory tag types available for use by the CPU.

Microsoft has added in support for DEP beginning with the following versions of Windows:
Microsoft Windows Server 2003 Service Pack 1
Microsoft Windows XP Service Pack 2
Microsoft Windows XP Tablet PC Edition 2005


CPU's supporting DEP have been available since at least 2005.

dBASE correctly tags its memory allocations with the proper Data or Code flags needed for DEP.
However, on some machines, DEP will stop dBASE from successfully loading.
When this occurs, the DEP settings in Windows have to be changed to allow dBASE to run.
(Individual programs can be excluded from DEP control).

The reason dBASE gets stopped by DEP is that it uses the Borland Language Driver (contained in BLW32.dll). Our internal tests showed that DEP was triggered when API calls were made by dBASE or the BDE into the Borland Language Driver.

For step-by-step instructions on configuring DEP to allow dBASE to run click on the following link:
How to Configure DEP (Data Execution Prevention) to allow dBASE or dQuery to install and run on Windows


For more information about DEP please click on the following link:
http://support.microsoft.com/default.aspx?scid=kb;en-us;875352