FAQ for Development on 64-bit Windows

This section contains frequently asked questions, links to Knowledge Base articles, and links to reference documentation to help you develop applications for 64-bit editions of Windows. If you have questions about pointer sizes and alignment, memory alignment, security issues, drivers, install and backup, application performance, or porting your 32-bit applications to 64-bits, then this section is for you.

Topics on this page:

  • Memory and Alignment
  • Security
  • Networking
  • Device Drivers
  • Performance
  • 32-bit Applications
  • Install/Backup

Memory and Alignment

Memory and Alignment Issues

  • What tools are available to determine the alignment size for a data type?

    There are two macros included in the Platform SDK to determine the alignment size of data types:

    • FIELD_OFFSET (type, member) - returns a SIZE_T value with the requested offset.
    • TYPE_ALIGNMENT (type) - returns a SIZE_T value with the requested alignment size.

    Note: The type parameter refers to the data type declaration or name, not a variable reference.

  • How is a data type's alignment size calculated?

    The alignment size of a data type is equal to the smallest power-of-2 value > the size in bytes of the largest primitive data member the type contains.

    For example, an integer has an alignment size of 4, because an integer is 4 bytes long, and 4 is the smallest power of 2 > the storage size of the data type.

  • How is the alignment size of a compound data type calculated?

    The alignment size of a compound data type is equal to the largest alignment size from all its contained members.

  • Why is memory alignment an issue in 64-bit?

    Memory alignment had not been an issue in 32-bit applications because the CPU handled alignment with little or no performance impact and no loss of stability.

    However, with 64-bit application development, the new pointer size can affect memory alignment, particularly on Itanium-based systems and therefore might have a negative impact on an application’s performance.

    On x64-based systems, alignment faults are handled by the CPU and do not severely impact performance.

  • What are my options to handle unaligned access to memory and prevent stability and performance issues?

    Here are a few options:

    • Correct the alignment and any unaligned access by using the natural alignment of the data types.
    • Mitigate unaligned access and resulting exceptions by using explicit exception handlers or _ _unaligned declarations.
    • Use of declspec(align) and the aligned CRT memory allocation routines.

    To declare your code as "64-bit compliant" you should always check your code for alignment issues.

  • Why does the alignment policy I've defined appear not to be making an impact?

    The alignment policy can be overridden by using packing directives or compiler and linker flags which can affect the use of padding as well as the data type alignment sizes.

  • How do I fix data misalignment problems?

    Proper data alignment creates the opportunity to improve the performance of your 64- and 32-bit applications. The Windows Data Alignment on IPF, x86, and x86-64 white paper explains how to use data alignment to improve performance of your 32-bit and 64-bit applications running on 64-bit editions of Windows.

  • What can I do to correct data alignment and memory issues when porting a 32-bit application to run on 64-bit?

    Please refer to the Windows Data Alignment on IPF, x86, and x86-64 white paper for information about data alignment.

  • What are the incorrect assumptions made about memory allocation?

    Please refer to the Windows Data Alignment on IPF, x86, and x86-64 white paper for information about data alignment.

  • What are the incorrect assumptions made about Compound Type member allocation?

    Please refer to the Windows Data Alignment on IPF, x86, and x86-64 white paper for information about data alignment.

  • How can I optimize my 64-bit C/C++ application?

    There are a few strategies that one can use to optimize their 64-bit C/C++ applications. Structures and classes can be reordered to use less space and the /opt:ref,icf link option can be used. In addition to applying standard Win32 optimization best practices to optimize 64-bit applications, using the PGO tool is recommended.

  • How do I ensure a pointer is addressing the memory allocation needed without committing reserved memory?

    Use VirtualAlloc() to fill out the low reserved memory in a pointer without committing reserved memory. VirtualAlloc() returns virtual addresses in low to high order.

  • Will I need special hardware for memory top-down testing?

    Loading large data sets is not necessary when testing and debugging applications and the memory that is used. In fact, no special hardware is needed for conducting top-down memory allocation testing. To force allocations in top-down order, set the registry entry HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management\AllocationPreference REG_DWORD to 0x100000. Along with the registry change, all 64-bit applications should be tested with the /PAE and /NOLOWMEM switches and x86 applications should be tested with the /PAE, /NOLOWMEM, and /3GB switches.

  • What are Polymorphic Data Types?

    New pointer-precision, or polymorphic, data types have been created that may be used interchangeably with pointers in any architecture. The types are polymorphic because they have more than one form based on the architecture the application is using to compile. The data types are pointer-precision because their size is relative to the size of pointer types, regardless of the target platform.

    Please refer to The New Data Types section of the Platform SDK for more information about data types.

    Note  Polymorphic data types work in 32-bit and 64-bit modes.

  • What integer data types are available to help port 32-bit applications to 64-bit?

    Fixed-precision integer types are available and are the same size regardless of architecture. Fixed-precision data types are the same length in both 32- and 64-bit Windows.

    Please refer to The New Data Types section of the Platform SDK for more information about data types.

  • How do I investigate and resolve pointer truncation problems?

    There are a number of flags that report potential 32/64-bit pointer porting issues, even when compiling for 32-bit machines. Use these flags and check for mismatches due to pointer size differences or memory access policy differences defined in 32-bit data structures. Specifically, use the /Wp64 switch.

    The example below will have different implementations in 32-bit than in 64-bit due to different pointer sizes. The risk can be mitigated by changing the types to fixed size types (POINTER_64, INT64, or UINT64) or by implementing marshalling and unmarshalling of data when communicating between processes.

    struct {   char* string;   int length;} StringWrapper;

  • What can I do to correct Pointer Truncation and Corruption issues when porting a 32-bit application to 64-bit?

    On a 32-bit platform, pointers can convert to numerical values. When this type of source code is executed on a 64-bit platform, truncation errors can arise. Polymorphic data types provide a solution for the problems and allow applications to be ported from 32-bit to 64-bit.

    The Microsoft C and C++ compilers have an option, /Wp64, that can help identify pointer truncation issues.

    Please refer to the Visual C++ Compiler Options section in the MSDN Library for more information.

  • How can I verify if changes I made fixed the pointer truncation errors?

    After compiling, verify the type casts are polymorphic and the memory operations show the pointer addresses are 64 bits long. Also verify the type casts applied through the stack class and the type casts applied during memory block operations are 64 bit.

  • Will using the new data types break existing code?

    No. The new data types are designed are designed and named to make the procedure for fixing pointer truncation issues straightforward. Using the new data types will not break existing functionality and will allow a common code base to be used when building 32-bit and 64-bit applications.

    Please refer to the Introducing 64-bit Windows section of the Platform SDK for more information.

    Top of Page

Security

General

  • Why am I prompted to restart my computer after a security update is installed?
    If the security update updates a file that is loaded and required by Windows, or if it makes changes to the registry, then you might be prompted to restart your computer. For more information, please see Knowledge Base article 887012. Also, please see FAQ-123 located in this FAQ.

Web-based Applications

  • Why are some Web-based applications not working correctly after applying security update MS05-001?
    Security update MS05-001 prevents the creation of an instance of the HTML Help ActiveX control that is served in HTML content from outside the Local Machine zone. For example, an HTML Help table of contents (TOC) may no longer function. For more information, please see Knowledge Base article 892675.

Certificates

  • How do I decommission the Microsoft enterprise certification authority CA and remove all related objects from the Active Directory service?
    The Microsoft Windows Server 2003 Administration Tools Packprovides utilities to help you remove CA objects from the domain. Step-by-step instructions for decommissioning a Microsoft enterprise CA and removing all related objects from the Active Directory service are provided in Knowledge Base article 889250.

More Information About Security

  • Where can I learn more about configuring Windows security?
    Microsoft, along with governmental and non-governmental agencies, has published the Security configuration guidance support document to help you with configuring Windows security.

    Top of Page

Networking

Login

  • Why am I getting an "Access Denied" error message when trying to access remote resources?
    If the network logon information is cached to login to a computer and establish a remote access connection, then access to remote resources is attempted, you may receive the following error message: "Access denied". This issue can occur if you connect to the remote network through a third-party implementation of the Remote Authentication Dial-In User Service (RADIUS) protocol. For more information, please see Knowledge Base article 822707.
  • Why do I receive the error message "The system cannot change your password because the domain ’MIT Realm’ is not available" when trying to change my password?
    If you are using a client that is located in a trusted Massachusetts Institute of Technology (MIT) Kerberos realm, and some other conditions are true, you might get this error message. The work around for this issue is to log on to the Windows Server 2003-based domain by using the User Principle Name (UPN) of the MIT Kerberos realm client. For more information, please see Knowledge Base article 842744.

Protocols

  • Where can I learn more about Remote Desktop Protocol settings in Windows Server 2003 and in Windows XP?
    The Default.rdp file—created in your My Documents folder when you use the Remote Desktop Protocol (RDP) to connect to a remote computer—stores the RDP connection settings. For more information, please see Knowledge Base article 885187.
  • Why might some Active Directory services, such as Lightweight Directory Access Protocol (LDAP) services, not function correctly?
    Some services of the Active Directory service might not function correctly when using a Windows 2000 Server-based or Microsoft Windows Server 2003-based domain controller. This issue might occur because of a corrupted registry entry. For more information, please see Knowledge Base article 888048.

Asynchronous Transfer Mode (ATM)

  • Why do I loose my ATM network connection and am not able to re-establish a connection?
    When using Asynchronous Transfer Mode (ATM) for network connections, you might lose your connections, and not be able to re-establish them. Microsoft does not yet have a solution available to fix this problem.

    Top of Page

Device Drivers

General

  • Where can I learn more about hardware and drivers for the 64-bit platform?
    Implementing hardware and firmware support for a 64-bit system requires special considerations that differ from 32-bit platform design. Microsoft Windows Hardware and Drivers Central is a great place to start learning about 64-bit hardware. For more information, please see the 64-bit Platform articles and the Device Drivers area of MSDN.
  • What drivers come with Windows XP x64 and where do I go to get other drivers?
    Windows XP ships with a set of predefined drivers, often called inbox drivers. To obtain 3rd party drivers, drivers not included with Windows XP, you'll need to contact your preferred vendor.

Database Connectivity

  • Are ODBC or OLE DB supported in 64-bit Windows? Yes, both ODBC and OLE DB are supported in 64-bit editions of Windows. For more information, please see the ODBC 64-Bit Information in the MSDN Library. The Microsoft OLE DB Core Services and the Microsoft SQL Server OLE DB Provider has been updated to support 64-bit Windows. These updates involve several API changes. If you are porting 32-bit OLE DB code to 64-bits, you will need to make changes to your code. Several new typedefs have been defined in the OLE DB header file. These new types allow you to maintain one set of source code for both 32-bit and 64-bit platforms. The simplest way to ensure that your code will compile in either 32-bit or 64-bit environments is to make sure that the code uses these new typedefs for variable definitions. For more information, please see the What is a decorated device driver and how do I decorate my device drivers to get them to install?
    An INF section is considered to be decorated when its name contains a TargetOSVersion suffix that identifies a particular platform and operating system. Decorated sections contain installation information that is relevant only to the platform and operating system specified by TargetOSVersion. If the device driver uses INF files for installation and the driver is not decorated, the driver will not install. Please check the INF files of third party devices and make sure the INF files have been decorated. For more information, please see the article INF Requirements for 64-bit Systems.
  • Why do drivers that install on x64 (i.e., AMD and Intel EM64T) need to be decorated to work?
    Decorated drivers help protect users from installing INF-based device driver packages on the wrong system platform, and help manufacturers avoid the associated support costs. For more information, please see the article INF Requirements for 64-bit Systems.
  • Where can I learn about decorating 64-bit INF drivers?
    Microsoft Windows Server 2003 SP1 and later versions of Windows do not install driver packages with undecorated INF sections on x64-based systems. For more information, please see the article INF Requirements for 64-bit Systems.
  • I can't locate a decorated driver from the manufacturer, how do I install an undecorated driver that uses x64 technology?
    Note  These workarounds are intended only for use on test systems and are not recommended for production drivers. There are two workarounds for installing undecorated drivers:
    1. Option 1 is to edit the INF to manually add decorations as in the example below:

      [Manufacturer]
      %mycompany% = MyCompanyModels,NTamd64

      [MyCompanyModels.NTamd64]
      %MyDev% = mydevInstall,mydevHwid

      This will break the signature of a signed driver, but will allow the driver to be installed (subject to the signed driver policy in effect on the local machine.)

    2. Option 2 is for AMD64 systems only. You can turn off the undecorated models check by creating the following non-zero numeric registry value:

      HKLM\Software\Microsoft\Windows\CurrentVersion\Setup: REG_DWORD:
      DisableDecoratedModelsRequirement For more information, please see the article INF Requirements for 64-bit Systems.

Network

  • Why can't I install my network adapter after upgrading to Windows XP Professional 64-bit Edition?
    All kernel-mode components, including device drivers, need to be 64-bit on 64-bit Windows. Contact the manufacturer to verify 64-bit driver availability and obtain the latest drivers.

Printers

  • Why don't the printer drivers automatically update when installed in a clustered environment?
    After you update a printer driver on a Microsoft Windows Server 2003-based print server that is in a clustered environment, some of the client computers' printer drivers may not be automatically updated. For example, the next time a client computer connects to your print server, the client computer’s local printer driver might not be automatically updated as expected. For more information, please see Knowledge Base article 888744.
  • Why can't I get the watermark, print multiple pages of a document on a single piece of paper, or collate features to work when printing a document?
    The problem occurs because the Microsoft print architecture requires a default printer driver on the server to the Print Processor. Some non-standard network print providers cannot do this. Therefore, the print queue may spool the job as raw data and skip the Print Processor driver. When this happens, certain printer features do not work correctly. For more information, please see Knowledge Base article 884897.

Storage Management

  • After using F6 to successfully install storage drivers, why do I receive a bug check 7B on restart?
    The difficulty arises because the F6 mechanism does not use the SetupAPI logic to load the storage drivers. You can manually decorate the INF files or get a newer version of the driver that uses 64-bit INF decorations. For more information, please see the Directory Changes for Vendor-provided Storage Drivers.

    Top of Page

Performance

  • Why is the "Hibernate" tab not available in the Power Options Properties?
    Microsoft disabled hibernation support on systems with more than 4 GB of memory due to the negative performance impact of hibernation. For more information, please see Knowledge Base article 888575.

  • Why am I seeing high CPU usage when running the Spooler service?
    The CPU usage for the Spooler service may remain above 50 percent if the LPR port name for an LPD print server cannot be resolved by using DNS. Each time that the service cannot contact the remote printer, event 2007 “The LPR print monitor failed to open the port named port name or IP address” is logged. For more information, please see Knowledge Base article 810908.

  • Why does my computer with a 64-bit edition of Windows take a significant amount of time to boot?
    Once possibility is that you have programs in your startup folder that are not 64-bit compatible. There are a variety of tools that can help you investigate this situation. Microsoft designed Bootvis.exe to help PC system designers and software developers identify and resolve issues for boot/resume performance. Please refer to BootVis.exe Tool for System Manufacturers for more information. You might also search your favorite software sites for tools that help you diagnose, optimize, and manage your computer’s startup and system resources. For example, there are several tools listed on Windows Marketplace when searching for "startup manager."

  • What kind of performance can I expect when running 32-bit applications on 64-bit editions of Windows?
    On x64 systems, 32-bit applications on 64-bit Windows typically run at speeds near that of the application on the same machine with a 32-bit version of Windows. In some cases, the applications might run faster.

  • What kind of performance improvements can I expect when running 64-bit applications on a 64-bit edition of Windows over running 32-bit applications on a 32-bit operating system?
    Performance improvements depend on several factors, most importantly working set size. When the working set is larger than the 32-bit address space, there can be performance gains on 64-bit. Even in cases where the working-set is smaller than the 32-bit address space, performance gains of up to 15% are possible.

    Top of Page

32-bit Applications

User Scenarios

  • What do I need to do differently to get my 32-bit application to install correctly on 64-bit Windows?
    Nothing. Windows Installer will install files 32-bit files that normally install on C:\Program Files into C:\Program Files (x86) and WoW64 redirects these to work in 64-bit Windows.
  • How does File System Redirection work when loading libraries?
    The Session Manager creates two lists of DLLS on Windows 64-bit when libraries are loaded: KnownDLLs (64-bit DLLs) and KnownDLLs32 (32-bit). To ensure 32-bit processes only interact with 32-bit DLLs, WoW64 intercepts references to the named object called KnownDLLs to KnownDLLs32. So when a 32-bit application running in WoW64 attempts to load a library in System32, the WoW64 execution layer intercepts the call and redirects the libraries to be loaded in SySWoW64.
  • What happens if my application uses the %Program Files% environment variable on 64-bit Windows?
    The %systemroot%\System32 directory is reserved for 64-bit applications so 32-bit applications must use a different directory as their System32 directory. WOW64 hides this difference using a file system redirector. So if your application is 64-bit the file system redirector will point to C:\Program files. If the application is 32-bit then redirector will point to C:\Program Files (x86). See FAQ-09.
  • If I'm writing a 64-bit application how do I get the name of the 32-bit system directory?
    Use the GetSystemWow64Directory function to retrieve the path of the system directory used by WOW64.
  • What happens if my 32-bit application writes REG_EXPAND_SZ keys containing %ProgramFiles% to the registry, do I need to manually replace this?
    No, you do not have to manually edit the registry. WoW64 intercepts these registry writes and replaces the path with %ProgramFilesx86%. This environment variable is defined for all processes. For example, if the "Program Files" directory is on the C drive, then %ProgramFilesx86" expands to C:\Program Files (x86)
  • How can I run 32-bit applications in a separate process space than a 64-bit application or migrate a component to 64-bit that depends on 32-bit DLLs or is served by a 32-bit DLL?
    64-bit Windows supports RPC/IPC and the recommendation is to use COM to marshal calls between 32-bit and 64-bit processes. Use COM to wrap a 32-bit DLL that is not COM aware to create an out-of-process COM server and use COM to direct calls with the 64-bit process.
  • What are some obstacles to running a 32-bit application in 64-bit mode?
    Some of the obstacles of running a 32-bit in 64-bit mode are:
    • Porting all 32-bit in-proc components to be 64-bit (or making them out-of-proc)
    • Data Misalignment
    • Member Realignment
    • Pointer Truncation

WoW64

  • How does WoW64 work?
    WOW64 runs in user mode, providing an interface between the x86 version of Ntdll.dll and the kernel of the processor; it intercepts kernel calls. In other words, WoW64 intercepts system calls from a 32-bit application running on Windows 64-bit systems. The execution layer converts 32-bit data structures into 64-bit aligned structures, initiates the call to the 64-bit system, writes any output, and then returns the call to 32-bit mode. Please refer to the Running 32-bit Applications section of the Platform SDK: 64-bit Windows Programming for more information about running Win32-based applications on 64-bit Windows.

  • What are the components of WoW64 that are used to make 32-bit DLLs work in 64-bit Windows?
    The WoW64 components include: an execution layer, registry management, file system redirection, application programming interfaces (APIs) and COM/WoW64. The execution layer provides backward compatibility with 32-bit applications. The emulator components include the following DLLs: Ntdll.dll - Controls Windows system functions. The 64-bit version of Ntdll.dll intercepts kernel calls. Wow64.dll - Provides the core emulation infrastructure and the thunks for the Ntoskrnl.exe entry-point functions. It manages process and thread initialization, exception dispatching, and the base system calls interception. Wow64win.dll - Provides thunks for the Win32k.sys entry-point functions. In other words it intercepts GUI calls. Wow64cpu.dll provides x86 instruction emulation on Itanium processors. It executes mode-switch instructions on the processor. This DLL is not necessary for x64 processors because they execute x86-32 instructions at full clock speed. In short it manages thread contexts and switches CPU modes using processor-specific architecture. Along with the 64-bit version of Ntdll.dll, these are the only 64-bit binaries that can be loaded into a 32-bit process. At startup, Wow64.dll loads the x86 version of Ntdll.dll and runs its initialization code, which loads all necessary 32-bit DLLs. Almost all 32-bit DLLs are unmodified copies of 32-bit Windows binaries. However, some of these DLLs are written to behave differently on WOW64 than they do on 32-bit Windows, usually because they share memory with 64-bit processes. Instead of using the x86 system-service call sequences, 32-bit binaries that make system calls are rebuilt to use a custom calling sequence. This new sequence is inexpensive for WOW64 to intercept because it remains entirely in user mode. Thunking is done in user mode to reduce the impact on the 64-bit kernel, and to reduce the risk of a bug in the thunk that causes a kernel-mode crash, data corruption, or a security hole. The thunks extract arguments from the 32-bit stack, extend them to 64 bits, and then make the native system call.

  • How do I get my 32-bit application to use the file systems folders reserved for 64-bit applications?
    The file system redirection is turned on by default. The file system redirection must be turned on to redirect 32-bit system calls to C:\Windows\SysWow64. This can be accomplished by using the WoW64EnableWoW64FSRedirection() function. . When the WoW64EnableWoW64FSRedirection() function is turned off the 32-bit application will use the system files in the 64-bit file system folder, C:\Windows\System32. Note  Unless you're certain your 32-bit application will run without redirection, leave the file system redirection activated.

  • How do I make my 32-bit application aware of itself running on a 64-bit architecture?
    When a 32-bit application executes inside WoW64, the application is unaware that it is running on 64-bit architecture. If your application requires underlying knowledge of the architecture the call to GetNativeSystemInfo() can be used to return the processor architecture.

  • Will WoW64 redirect system calls to C:\Program Files (x86)?
    No. WoW64 only redirects system calls from 32-bit applications to C:\Windows\SysWow64 directory. Please refer to the File System Redirector section of the Platform SDK: 64-bit Windows Programming for more information about WoW64 redirection.

  • What should I do if my application uses data files and configurations that are shared between 32-bit and 64-bit applications?
    It can be useful for 32-bit and 64-bit applications to share specific registry key values that are normally written to separate registry views. For example, a 32-bit OLE server that can serve requests from both 32-bit and 64-bit clients could make its 32-bit registry data available to the 64-bit view of the system registry. When a component writes data in the system registry, WOW64 analyzes the information and makes a copy of the data in the alternate view of the registry when appropriate. Typically, this process keeps two separate physical copies of the same registry keys in both views in the registry, and is called registry reflection or registry mirroring. For example, you will need to useReflection in Wow64 to mirror subdirectories between 64-bit and 32-bit processes for files that are installed in the following subdirectories which are exempt from redirection:

    %windir%\Systeme32\drivers\etc
    %windir%\System32\spool
    %windir%\System32\catroot2
    To disable and enable registry reflection for a particular key, use the RegDisableReflectionKey andRegEnableReflectionKeyfunctions. To determine the reflection state of a key, use theRegQueryReflectionKey function.

    Top of Page

Install/Backup

Install

  • What installer can I use to package 32-bit or 64-bit components?
    Windows Installer version 2.0 runs as a service on computers using 32-bit or 64-bit versions of Windows. Versions of the installer earlier than version 2.0 can install and manage 32-bit Windows Installer Packages only on 32-bit operating systems. Windows Installer version 2.0 supports virtually all of the setup functionality available with earlier installer versions. Note  You cannot advertise or install a 64-bit application on a 32-bit operating system. Please refer to the 64-bit Windows Installer Packages in the Platform SDK for more information.
  • How do I determine the appropriate page file size for 64-bit versions of Windows?
    When you set up a 64-bit version of Microsoft Windows Server 2003 or Microsoft Windows XP, the operating system will create a page file that is one and a half times the amount of RAM that is installed in your computer. However, as the amount of RAM in a computer increases, the need for a page file decreases. For more information, please see Knowledge Base article 889654.
  • How do I uninstall a 64-bit edition of Windows?
    Uninstalling an operating system generally requires the use of the Fdisk tool and the Format tool to partition or repartition a hard disk. For more information, please see Knowledge Base article 255867.
  • After updating my Windows XP SP1-based computer, I can’t access shared folders on a Windows 98-based computer that are protected with a password. Trying to access the shared folders, results in an error.
    The error returned is:

    The specified network password is not correct. This error can occur if you updated your computer using the updates described in either Microsoft Knowledge Base article815432 or885835, or by using any update that is more recent than 815432 and that updated the Mrxsmb.sys file. To resolve this problem, obtain the latest service pack for Microsoft Windows XP. For more information, please see Knowledge Base article 894606.

Backup

  • Will my 32-bit backup and restore application work in 64-bit Windows?
    Backup applications written for 32-bit versions of Microsoft Windows will not properly backup or restore system files and settings when run on 64-bit systems due to:
    • The Volume Shadow Copy Services (VSS) functionality is different between Windows XP for 32-bit systems and Windows XP for 64-bit systems
    • The file system filter driver creates a virtual representation of the system files
    • 32-bit applications will be able to select the right version of system files to copy to backup media
    • 32-bit applications will fail when using Automatic System Recovery (ASR) to prepare a full system backup on 64-bit systems Microsoft is working with many ISVs to help them make their applications compatible with 64-bit editions of Windows. Note  This applies to Microsoft Windows XP 64-Bit Edition and Microsoft Windows Server 2003, 64-Bit Enterprise Edition.
  • What utility can I use to backup my system?
    Use ntbackup: start->run->ntbackup to backup 32-bit and 64-bit files on 64-bit Windows operating systems. For other backup utilities, please see your preferred vendor.

Top of PageTop of Page