Additionally, if you enable USERENV logging, you see log entries that resemble the following:
USERENV(2ac.2b0) 16:35:57:459 Local Existing Profile Image is reachable
USERENV(2ac.2b0) 16:35:57:459 Local profile name is <C:\Documents and Settings\User_Name>
USERENV(2ac.2b0) 16:35:57:459 RestoreUserProfile: No central profile. Attempting to load local profile.
USERENV(2ac.2b0) 16:35:57:495 MyRegLoadKey: Failed to load subkey <S-1-5-21-1292428093-343818398-839522115-49106>, error =32
USERENV(2ac.2b0) 16:35:57:495 MyRegLoadKey: Returning 00000020
USERENV(2ac.2b0) 16:35:57:495 RestoreUserProfile: MyRegLoadKey returned FALSE.
For more information about when a new version of the Citrix ICA client will be available, contact Citrix support by visiting the following Citrix support Web site:Microsoft provides third-party contact information to help you find technical support. This contact information may change without notice. Microsoft does not guarantee the accuracy of this third-party contact information.
Disable prefetchYou can disable prefetch on a persistent basis for all programs, or you can manually remove prefetch tracing only for the SSONSVR.exe process. To disable prefetch, use one of the following options, as appropriate.
Option 1: How to disable prefetch for the SSONSVR.exe processTo disable prefetch for the SSONSVR.exe process, each user must follow these steps before logging off or shutting down the computer.
Open Windows Explorer.
- Move to the following folder:Drive_letter:\Windows\prefetch
- Locate and then delete the file that is used to prefetch the SSONSVR.exe process. The name of this file will resemble the following:SSONSVR*.pf
- Shut down or log off the computer.
Option 2: How to disable prefetch for all programsImportant This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
To disable the prefetch component for all programs, follow these steps:
- Click Start, click Run box, type regedit, and then click OK.
- Locate and then click the following registry subkey:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
- Double-click the EnablePreFetcher registry entry.
- In the Edit DWORD Value dialog box, type 2 in the Value data box, and then click OK.
- Exit Registry Editor.
- Restart the computer.
How to delete unwanted user profilesWarning When you delete a user profile, you lose all data related to the profile, such as desktop settings, favorites, program-specific data that is contained in the "Application Data" folder, and the contents of the "My Documents" folder. Therefore, make sure that you delete only the profiles that you do not want to keep.
- Right-click My Computer, and then click Properties.
- In the System Properties dialog box, click the Advanced tab, and then click Settings in the User Profiles area.
- In the User Profile dialog box, select the individual profile that you want to delete.
- Click Delete, and then confirm the action.
- Click OK.
What is prefetchPrefetch is a subsystem in Windows that preloads to memory all code that the system computes may be required to improve application startup speed. The preloading depends on the past behavior of the application startup when it was loaded into memory. Prefetch traces the page faults that occur for a process during the previous startup. Prefetch also traces activity in the System context that may occur simultaneously during the startup of an application. If no other process claims ownership of the activity in the System context, prefetch may log the activity as owned by the application process. To make sure that startup activities are recorded correctly, prefetch compares several application startup cycles and then sets a pattern.
Windows XP prefetch has been working successfully for several years. However, in this case, because SSONSVR.exe is started from a Citrix network provider, it coincidentally starts while the user’s profile is loaded. Prefetch considers that the System access of the Ntuser.dat file is part of the SSONSVR.exe process. Therefore, prefetch adds the loading of the user profile to the SSONSVR.exe prefetch file.
This condition can make the SSONSVR.exe process access a file like Ntuser.dat during startup without having any code or API call. Typically, this condition will not have any effect on the system. In this case, because Winlogon.exe tries to access the Ntuser.dat file at the same time, the issue that is described in the "Symptoms" section occurs.
Effect of disabling prefetchWhen you disable the prefetch component, programs may take more time to load at program startup. However, in many systems, disabling the prefetch component may have a minimal effect. For example, if you do not start different programs on the computer frequently, the performance effect will be much less.
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.
Article ID: 969100 - Last Review: Apr 1, 2009 - Revision: 1