The svdriver component of App Volumes agent is used for the virtualization of volumes into the OS. You can configure this component with registry keys at HKLM\SYSTEM\CurrentControlSet\Services\svdriver\Parameters.

Parameters for configuring svdriver

Registry Key Type Description
AllowInstallerModification REG_DWORD When the value is 0, an end user is not allowed to modify, update, or uninstall an application, which is either installed on the base image or delivered as an application package, from Add or remove programs in the Control Panel.

By default, the value of the registry key is 0.

When the value is 1, the user is allowed to modify, update, or uninstall the applications.

For more information about the protection mechanism where an end user is not allowed to perform any of the operations on an application which is installed on the base or delivered as an application package, see Uninstalling Applications: This action is not allowed for application <application_name>.

DriveLetterSettings REG_DWORD The value for DriveLetterSettings is in a hexadecimal format, and any number of flags might be combined to implement multiple parameters.
EnableHookInjection REG_DWORD To allow or disallow injecting svhook**.dll to a process, you can use this parameter.

By default, the value of EnableHookInjection is 1.

To determine which process svhook**.dll must be injected to, use the HookInjectionWhitelist parameter.

To deactivate EnableHookInjection parameter, set the value to 0.

Note: Any changes to EnableHookInjection takes effect only after the agent computer reboots.

For more information about the HookInjectionWhitelist parameter, see the corresponding row for the parameter in this table.

EnableRegValueMerging REG_DWORD If this value is 1, merge certain registry values such as AppInitDlls across volumes. This action is additive across the volumes.
EnableShortFileName REG_DWORD For legacy AppStacks created earlier than App Volumes 2.3, set this parameter to 0 to deactivate DOS short names.
HookInjectionWhitelist REG_MULTI_SZ App Volumes agent uses this parameter to determine the process to which svhook**.dll must be injected to.
Use the following syntax for this parameter:
<process_path> | <DLL_path> | <command-line_arguments>
  • <process_path> - App Volumes agent injects svhook**.dll to the process as mentioned in the <process_path>.

    svhook32.dll is injected to a 32-bit process and svhook64.dll is injected to a 64-bit process.

  • <DLL_path> - when the DLL present in the <DLL_path> is loaded by the process as specified in the <process_path>, then only svhook**.dll is injected to the process.
    Note: <DLL_path>-based injection affects process start time.

    <DLL_path> argument is optional. You can leave the argument blank (| |).

  • command-line_arguments - command-line arguments used when running the process as mentioned in the <process_path>.

    App Volumes agent injects svhook**.dll only if the command as mentioned in this syntax is used when running the process.

Note: <process_path>, <DLL_path>, and command-line_arguments support wildcard pattern matching.
Consider the following example:
*\svchost.exe | *\user32.dll | -netsvc
*\svchost.exe is the process path, *\user32.dll is the DLL path, and -netsvc is the command-line argument. Both the process path and DLL path contain the wildcard character (*) for pattern matching. This usage indicates that svchost.exe process is run from any location in the file system and user32.dll located any where in the file system is loaded by the process. Here are some scenarios:
  • *\svchost.exe | *\user32.dll | -netsvc

    App Volumes agent injects svhook**.dll to svchost.exe only if user32.dll is loaded by svchost.exe and -netsvc is the command-line argument used when running svchost.exe.

  • *\svchost.exe | *\user32.dll | *

    App Volumes agent injects svhook**.dll to svchost.exe only if user32.dll is loaded by svchost.exe for any command-line argument used when running svchost.exe.

    * - indicates any command used during process creation

  • *\svchost.exe | *\user32.dll

    App Volumes agent injects svhook**.dll to svchost.exe only if user32.dll is loaded by svchost.exe and no command-line arguments are provided.

  • *\svchost.exe | | -netsvc

    App Volumes agent injects svhook**.dll to svchost.exe only if -netsvc is used when running svchost.exe.

  • *\svchost.exe | | *

    App Volumes agent injects svhook**.dll to svchost.exe for any command-line argument used when running svchost.exe.

  • *\svchost.exe | |

    App Volumes agent injects svhook**.dll to svchost.exe only if no command-line arguments are provided.

Note: Any changes to HookInjectionWhitelist takes effect only after the agent computer reboots.

Driver Letter Settings

By default, a drive letter is not assigned to either application packages or Writable Volumes. In such a scenario, a volume can be accessed using a system path. Most modern applications are compatible with this behavior, but some applications might require a drive letter to access program or application files. An administrator can assign a drive letter using the disk management console. App Volumes can hide this drive from Windows Explorer using the DriveLetterSettings, an svdriver parameter.

To assign a specific drive letter to a Writable Volume, you can use the DriveLetterSettings parameter.

Value Description
0x0000008 DRIVELETTER_HIDE_WRITABLE.

Hide drive letter for Writable Volumes.

0x0000004 DRIVELETTER_HIDE_READONLY.

Hide drive letter for AppStack volumes.

0x0000010 DRIVELETTER_ASSIGN_WRITABLE.

A Writable Volume can be assigned a drive letter.

App Volumes agent assigns any available drive letter, starting from C: to Z: to the Writable Volume.

Administrators can assign a specific drive letter to a Writable Volume using the svservice parameter, DriveLetter. For more information about this parameter, see Configuration of svservice.