Autorun.inf explained

An autorun.inf file is a text file that can be used by the AutoRun and AutoPlay components of Microsoft Windows operating systems. For the file to be discovered and used by these component, it must be located in the root directory of a volume. As Windows has a case-insensitive view of filenames, the autorun.inf file can be stored as AutoRun.inf or Autorun.INF or any other case combination.

The AutoRun component was introduced in Windows 95 as a way of reducing support costs. AutoRun enabled application CD-ROMs to automatically launch a program which could then guide the user through the installation process. By placing settings in an autorun.inf file, manufacturers could decide what actions were taken when their CD-ROM was inserted. The simplest autorun.inf files have just two settings: one specifying an icon to represent the CD in Windows Explorer (or "My Computer") and one specifying which application to run.

Extra settings have been added in successive versions of Windows to support AutoPlay and other new features.

The autorun.inf file

autorun.inf is an ASCII text file located in the root folder of a CD-ROM or other volume device medium (See AutoPlay device types). The structure is that of a classic Windows .ini file, containing information and commands as "key=value" pairs, grouped into sections.[1] These keys specify:

Abuse

Autorun.inf has been used to execute a malicious program automatically, without the user knowing. This functionality was removed in Windows 7 and a patch for Windows XP and Vista was released on August 25, 2009 and included in Microsoft Automatic Updates on February 8, 2011.

Inf handling

The mere existence of an autorun.inf file on a medium does not mean that Windows will automatically read it or use its settings. How an inf file is handled depends on the version of Windows in use, the volume drive type and certain Registry settings.

Assuming Registry settings allow AutoRun, then the following autorun.inf handling takes place:

On any drive type, the autorun.inf is read, parsed and instructions followed immediately and silently.[2]

The "AutoRun task" is the application specified by the open or shellexecute keys. If an AutoRun task is specified it is executed immediately without user interaction.

Introduction of AutoPlay.

Drives of type DRIVE_CDROM invoke AutoPlay if no autorun.inf file is found.

Drives of type DRIVE_REMOVABLE do not use the autorun.inf file.[1] Any discovered removable media are handled by AutoPlay.

All other handling is as before.

Drives of type DRIVE_FIXED are now handled by AutoPlay. Any specified AutoRun task appears as an option within the AutoPlay dialog together with any text specified by the optional action key.[3]

Drives of type DRIVE_REMOVABLE now use autorun.inf but continue to be handled by AutoPlay. Any specified AutoRun task needs to be paired with the mandatory action key to appear as an option within the AutoPlay dialog. Otherwise the AutoRun task is omitted.[3]

All other handling is as before.

The AutoRun task is no longer automatically and silently executed on any drive type. All volumes are handled by AutoPlay which, by default, will present an appropriate dialog to the user.

For all drive types, except DRIVE_CDROM, the only keys available in the [autorun] section are label and icon. Any other keys in this section will be ignored. Thus only CD and DVD media types can specify an AutoRun task or affect double-click and right-click behaviour.[3] [4]

There is a patch available, KB971029 for Windows XP and later, that will change AutoRun functionality to this behaviour.[5]

A simple example

This simple autorun.inf file specifies setup.exe as the application to run when AutoRun is activated. The first icon stored within setup.exe itself will represent the drive in Explorer:

[autorun]open=setup.exeicon=setup.exe,0label=My install CD

Sections

Following are the sections and keys allowed in a valid autorun.inf.[3] There also exist architecture specific section types for systems such as Windows NT 4 running on RISC. However these are long outdated and not described here.

{{bracket|autorun}}

The autorun section contains the default AutoRun commands. An autorun.inf file must contain this section to be valid. Keys allowed are:

action=<var>text</var>
  • action=@[<var>filepath</var>\]<var>filename</var>,-<var>resourceID</var>
  • Windows XP SP2 or later; drives of type DRIVE_REMOVABLE and DRIVE_FIXED
  • Specifies text used in the AutoPlay dialog to represent the program specified in the open or shellexecute keys. The text is expressed as either text or as a resource reference. The icon is displayed next to the text. This item is always first in the AutoPlay dialog and is always selected by default.
  • If the (action) key does not appear on drives of type:
    DRIVE_REMOVABLE
  • the AutoPlay dialog appears but without additional menu items. Essentially, the AutoRun task is omitted. This makes the action key mandatory for drives of this type.
    DRIVE_FIXED
  • default text is created and used in the AutoPlay dialog.
  • On all other drive types the key is ignored.
    icon=<var>iconfilename</var>[,<var>index</var>]
  • The name of a file resource containing an icon. This icon replaces the standard drive icon in Windows Explorer. This file must be in the same directory as the file specified by the open key.
    label=<var>text</var>
  • Specifies a text label representing the drive in Windows Explorer.
    open=[<var>exepath</var>\]exefile [param1 [param2 ...]]
  • Specifies the path, file name and optional parameters to the application that AutoRun launches when a user inserts a disc in the drive. It is the CreateProcess function that is called by AutoRun. Note that if the application name includes spaces the path should be enclosed in double quote, e.g. open=""spread sheets.exe""
    shellexecute=[<var>filepath</var>\]filename [<var>param1</var> [<var>param2</var> ...]]
  • Windows 2000, Windows ME or later
  • Similar to open, but using file association information to run the application. The file name can therefore be an executable or a data file. It is the ShellExecuteEx function that is called by AutoRun.
    UseAutoPlay=1
  • Windows XP or later; drives of type DRIVE_CDROM
  • Use AutoPlay rather than AutoRun with CD-ROMs. The action taken on CD-ROM insertion will depend on the version of Windows being used.
  • On versions of Windows earlier than XP, this key has no effect and actions specified by open or shellexecute are performed.
  • On Windows XP and later, the user will be presented with the AutoPlay dialog and any actions specified by open or shellexecute are ignored.
    shell\<var>verb</var>\command=[<var>exepath</var>\]<var>exefile</var> [<var>param1</var> [<var>param2</var> ...]]
  • Adds a custom command to the drive's shortcut menu. verb is a string with no embedded spaces. verb is also the text that will appear in the shortcut menu unless specifically altered to some other text. See below for an example.
    shell\<var>verb</var>=<var>menu text</var>
  • Optionally specify the text displayed in the shortcut menu for the verb above. Use an ampersand (&) to select a hotkey for the menu. See below for an example.
    shell=<var>verb</var>
  • Defines the menu command referred to by shell\<var>verb</var> as the default command in the shortcut menu. The default command is the command executed when the drive icon is double-clicked. If missing, the default menu item will be "AutoPlay", which launches the application specified by the open entry.
  • Example:
    shell\readme\command=notepad readme.txtshell\readme=Read & Meshell=readme

    {{bracket|Content}}

    The Content section allows authors to communicate the type and intent of content to AutoPlay without AutoPlay having to examine the media.

    Valid keys are: MusicFiles, PictureFiles, VideoFiles. Each key can be set to indicate true or false values and values are not case sensitive.

    true or (1, y, yes, t)
  • display the handlers associated with that content type
    false or (0, n, no, f)
  • do not display the handlers associated with that content type

    Example:[Content]MusicFiles=YPictureFiles=0VideoFiles=false

    {{bracket|ExclusiveContentPaths}}

    Limits AutoPlay's content search to only those folders listed, and their subfolders. The folder names are always taken as absolute paths (a path from the root directory of the media) whether or not a leading slash is used.

    Example:[ExclusiveContentPaths]\pictures\musicmore music\special

    {{bracket|IgnoreContentPaths}}

    AutoPlay's content search system will not scan the folders listed, nor their subfolders. IgnoreContentPaths takes precedence over ExclusiveContentPaths so if a path given in a [IgnoreContentPaths] section is a subfolder of a path given in an [ExclusiveContentPaths] section it is still ignored.

    Example:[IgnoreContentPaths]pictures\musicmore music\special

    {{bracket|DeviceInstall}}

    Only Windows XP[3]

    This section is used to indicate where driver files may be located. This prevents a lengthy search through the entire contents of a CD-ROM. Windows XP will fully search:

    without this section present. All other media should include this section to have Windows XP autodetect any drivers stored on that media.

    The section is not used with AutoRun or AutoPlay and is only referred to during a driver installation phase. The only valid key is:

    DriverPath=directorypath

    which lists a path Windows will search for driver files. All subdirectories of that path are also searched. Multiple key entries are allowed.

    If no DriverPath entry is provided in the section or the DriverPath entry has no value, then that drive is skipped during a search for driver files.

    Example:[DeviceInstall]DriverPath=drivers\video DriverPath=drivers\audio

    [autorun]open=setup.exeicon=setup.exe,0label=My install CD

    See also

    External links

    Notes and References

    1. Web site: Creating an AutoRun-Enabled Application. Microsoft. MSDN Library.
    2. Web site: How to Test autorun.inf Files. Microsoft. Knowledge Base.
    3. Web site: Autorun.inf Entries. Microsoft. MSDN Library.
    4. Web site: Improvements to AutoPlay. Microsoft. Engineering Windows 7 blog.
    5. Web site: Update to the AutoPlay functionality in Windows. Microsoft. Knowledge Base.