Device Path Exerciser Commands

Use the following syntax and command parameters to run Device Path Exerciser. The Device Path Exerciser command parameters have two types of prefixes.

  • The {+ | / | - } prefix indicates that the parameter can be preceded by a plus sign (+), a minus sign (-), or a forward slash (/). Use + or / to enable the option, or - to disable it.

  • The / prefix indicates that Device Path Exerciser only uses the forward slash (/) symbol, which enables the option. For these parameters, the plus sign (+) and the minus sign (-) are valid, but Device Path Exerciser interprets them as / (enable the option). You cannot use the minus sign (-) to disable these options.

Note   To run the Device Path Exerciser application, which provides an interface that makes it easy to select options, type devpathexer without any options.

devpathexer [DeviceParameters] [TestParameters] [LogParameters]

devpathexer [/pd] [/?]

Parameters

  • DeviceParameters
    Specifies the devices that Device Path Exerciser tests.

    To specify device parameters, use the following syntax:

    [/dr driver ]... | [/d] device | {+|/|-}rd | {+|/|-}a ] [{+|/|-}sl] [{+|/|-}y]
    
    • /dr driver
      Test all devices created by the specified driver.

      This parameter is valid only on Windows XP and later version of Windows.

      The driver argument specifies the service name of the driver. You can specify up to ten drivers. If the service name includes spaces, enclose the name in quotation marks.

    • /d device
      Tests the specified device.

      The device argument specifies the NT device name of a device, such as \device\cdrom. You can specify only one device in each Device Path Exerciser command. To display the object names of all devices on the system, use /pd.

      The /d parameter is optional. Device Path Exerciser interprets any item on the command line as a device, unless it is preceded by a plus sign (+), a minus sign (-) or a forward slash (/).

    • {+|/|-}rd
      Randomly selects devices or symbolic links to test.

      This option is disabled by default. Use +rd or /rd to enable it.

    • {+|/|-}a
      Tests all devices on the system without prompting the user.

      This option is disabled by default. Use +a or /a to enable it.

    • {+|/|-}sl
      Tests symbolic links to devices, as well as the devices.

      This option is disabled by default. Use +sl or /sl to enable it.

    • {+|/|-}y
      Includes disk devices in Device Path Exerciser tests.

      This parameter is used when you specify a driver ( /dr ) or the random selection of a device ( /rd ).

      By default, disk devices are included in tests. To exclude them, use -y.

    For more information about selecting devices, see Comments.

  • TestParameters
    Selects and configures tests for a Device Path Exerciser test session. All of the test parameters are optional.

    • {+|/|-}k
      Performs Synchronous Open Operations

      This option is disabled by default. To enable it, use /k or +k.

    • {+|/|-}dd
      Performs Direct Device Open Operations.

      Because Direct Device Open Operations are an optional extension of the Synchronous Open Operations, you must use the /dd parameter with the /k parameter. Otherwise, the /dd parameter is ignored.

      This option is disabled by default. To enable it, use /dd or +dd.

    • {+|/|-}ac ControlCodeFile
      Performs the Active Control Test.

      ControlCodeFile is the name of the input file for the Active Control Test. If you omit the path, Device Path Exerciser assumes that the file is in the current directory.

      This option is disabled by default. To enable it, use /ac or +ac.

    • {+|/|-}hct
      Specifies the same tests and test options that Device Test Manager (DTM) uses. The settings are described in HCT Test.

      You can use the other test parameters to override the HCT Test settings. For example, to run the HCT Test without Direct Device Open Operations, use +hct -dd.

      This option is disabled by default. To enable it, use /hct or +hct.

    • {+|/|-}if
      Performs the Random Test and the Zero-Length Buffer Test with both IOCTLs and FSCTLs .

      This parameter is the equivalent using both the /i and /f parameters in a Device Path Exerciser command.

      This option is disabled by default. To enable it, use /k or +k.

    • {+|/|-}i
      Performs the Random Test and the Zero-Length Buffer Test with IOCTLs.

      This parameter is the equivalent of using both the /fr and /fn parameters in a Device Path Exerciser command.

      This option is disabled by default. To enable it, use /i or +i.

    • {+|/|-}f
      Performs the Random Test and the Zero-Length Buffer Test with FSCTLs.

      This parameter is the equivalent of using both the /fr and /fn parameters in a Device Path Exerciser command.

      This option is disabled by default. To enable it, use /f or +f.

    • {+|/|-}ir
      Performs the Random Test (including the Tailored Random Test with IOCTLs ) with IOCTLs.

      This option is disabled by default. To enable it, use /ir or +ir

    • {+|/|-}fr
      Performs the Random Test (including the Tailored Random Test) with FSCTLs.

      This option is disabled by default. To enable it, use /fr or +fr.

    • {+|/|-}in
      Performs the Zero-Length Buffer Test with IOCTLs.

      This option is disabled by default. To enable it, use /in or +in.

    • {+|/|-}fn
      Performs the Zero-Length Buffer Test with FSCTLs.

      This option is disabled by default. To enable it, use /fn or +fn.

    • {+|/|-}w
      Performs the Windows Socket Test.

      This option is disabled by default. To enable it, use /w or +w.

    • {+|/|-}s
      Performs the Relative Open Test (also called the Sub-Open Test).

      This option is disabled by default. To enable it, use /s or +s.

    • {+|/|-}j
      Performs the Streams Test.

      Because the Streams Test is an extension of the Relative Open Test, the /j parameter is valid only with the /s parameter.

      This option is disabled by default. To enable it, use /j or +j.

    • {+|/|-}m
      Performs the Miscellaneous Tests (Parts 1 and 2).

      This option is disabled by default. To enable it, use /m or +m.

    • {+|/|-}e
      Adds a zero-length test to the File Attributes Test (Miscellaneous Tests Part 2).

      While retrieving the extended attributes of a file, Device Path Exerciser passes a blank (zero-length) query and an invalid buffer address to the driver.

      This parameter is valid only with the /m parameter, which adds the Miscellaneous Tests to the Device Path Exerciser test session.

      This option is disabled by default. To enable it, use /e or +e.

    • {+|/|-}oc
      Performs the Open and Close Test.

      This option is disabled by default. To enable it, use /oc or +oc.

    • {+|/|-}q
      Performs the Query and Set File Information Test.

      This option is disabled by default. To enable it, use /q or +q

    • {+|/|-}sd
      Performs the Query and Set Security Test.

      This option is disabled by default. To enable it, use /sd or +sd.

    • {+|/|-}pr
      Varies the protection of the buffer on each call to the driver. The buffer protection alternates between no access, read-only, and read-only with page guard. This option affects all tests.

      This option is disabled by default. To enable it, use /pr or +pr.

    • {+|/|-}im
      Runs the test with the permissions of a user who is not a member of the Administrators group on the computer. Because most users are not members of the Administrators group, this option provides a realistic test of a user's access to the device.

      This option is enabled by default. To disable it, use -im.

    • {+|/|-}n
      Maps the zero page and fills it with NULL values. This test identifies drivers that do not verify a pointer reference before dereferencing a pointer.

      This option is disabled by default. To enable it, use /n or +n.

    • {+|/|-}p
      Monitors the driver's use of the paged and nonpaged system memory pools by using pool tags and lookaside lists. This option also monitors changes in the number of exceptions handled, which might indicate errors in exception handling.

      This option is disabled by default. To enable it, use /p or +p.

      To use this option on Windows XP and earlier versions of Windows, pool tagging must be enabled on the system. To enable pool tagging, use GFlags to set the +ptg flag in the registry, and then restart the system.

      Gflags is included in Debugging tools for Windows. For more information about GFlags, see the "Gflags" topic in the Debugging Tools for Windows documentation.

    • {+|/|-}al
      Attempts to alert the test thread periodically when the test stops responding. If the thread does not respond after 10 minutes, this option stops the test.

      This option is enabled by default. To disable the feature, use -al.

    • {+|/|-}fi
      Enables the following Driver Verifier volatile settings:

      Special Pool

      Force IRQL Checking

      Low Resources Simulation, also known as fault injection.

    This parameter enables the specified Driver Verifier features for all drivers that Driver Verifier is monitoring. However, this parameter does not start Driver Verifier monitoring on the driver that Device Path Exerciser is testing. Before using this feature, start Driver Verifier monitoring for the driver you are testing.

    This option is disabled by default. To enable it, use /fi or +fi.

  • /|-}c
    Skips tests that caused the driver to crash in previous Device Path Exerciser test sessions, based on the data from the Crashn.log or Crash.log files.

    This option is disabled by default. To enable it, use /c or +c.

  • {+|/|-}r
    Skips all tests that have been performed in previous Device Path Exerciser test sessions (based on the data recorded in the Crashn.log file).

    This option is disabled by default. To enable it, use /r or +r.

  • /dl min
    Specifies the minimum value of the DeviceType field in the IOCTLs and FSCTLs that Device Path Exerciser passes to the driver during Random Test and Zero-Length Buffer Test.

    The min argument represents a decimal number. The default is 0. The maximum value is 65535. (The minus sign (-) prefix is not valid with dl.)

    For information about the DeviceType parameter, see Defining I/O Control Codes.

  • /du max
    Specifies the maximum value of the DeviceType field in the IOCTLs and FSCTLs that Device Path Exerciser passes to the driver during Random Test and Zero-Length Buffer Test.

    The max argument represents a decimal number. The default is 200. The maximum value is 65535. (The minus sign (-) prefix is not valid with du.)

    For information about the DeviceType parameter, see Defining I/O Control Codes.

  • /fl MinFunction
    Specifies the minimum value of the FunctionCode field in the IOCTLs and FSCTLs that Device Path Exerciser passes to the driver during Random Test and Zero-Length Buffer Test.

    The MinFunction argument represents a decimal number. The default is 0. The maximum value is 4095. (The minus sign (-) prefix is not valid with fl.)

    For information about the FunctionCode parameter, see Defining I/O Control Codes.

  • /fu MaxFunction
    Specifies the maximum value of the FunctionCode field in the IOCTLs and FSCTLs that Device Path Exerciser passes to the driver during Random Test and Zero-Length Buffer Test.

    The MaxFunction argument represents a decimal number. The default is 400. The maximum value is 4095. (The minus sign (-) prefix is not valid with fu.)

    For information about the FunctionCode parameter, see Defining I/O Control Codes.

  • /rs SeedNumber
    Specifies the seed number used in the random-number generating routine for the Random Test.

    SeedNumber can be any positive integer. (The minus sign (-) prefix is not valid with rs.)

    A seed number is the starting number for an algorithm that generates random numbers. Changing the seed number changes the "random" numbers that the algorithm generates.

  • /t MaxRandomCalls
    Specifies the maximum number of calls that Device Path Exerciser issues during the Random Test.

    Type the number of calls in decimal format. The default is 100000. (The minus sign (-) prefix is not valid with t.)

  • /tt MaxTailoredCalls
    Specifies the maximum number of calls that Device Path Exerciser issues during the Tailored Random Test. The default is 10000 (calls). (The minus sign (-) prefix is not valid with tt.)

  • /il MinInBuf
    Specifies the minimum size, in bytes, of the input buffers that Device Path Exerciser passes to the driver in IOCTLs and FSCTLs. The default is 0. (The minus sign (-) prefix is not valid with il.)

  • /iu MaxInBuf
    Specifies the maximum size, in bytes, of input buffers that Device Path Exerciser passes to the driver in IOCTLs and FSCTLs. The default is 512. (The minus sign (-) prefix is not valid with iu.)

  • /ol MinOutBuf
    Specifies the minimum size, in bytes, of output buffers that Device Path Exerciser passes to the driver in IOCTLs and FSCTLs. The default is 0. (The minus sign (-) prefix is not valid with ol.)

  • /ou MaxOutBuf
    Specifies the maximum size, in bytes, of input buffers that Device Path Exerciser passes to the driver in IOCTLs and FSCTLs. The default is 512. (The minus sign (-) prefix is not valid with ou.)

LogParameters

Specifies the level of detail in Device Path Exerciser logs. All log parameters are optional.

  • {+ | / |- }l
    Enables or disables all logging. By default, logging is enabled. To disable logging to all log files (including the crash logs), use -l.

  • /lv
    Enables the most detailed logging levels on both Dc2.log and Diags.log. This parameter is the equivalent of using /lda and /lta.

  • /ltx
    Determines which events are recorded in Dc2.log, the Device Path Exerciser test event log.

    The x parameter specifies the events.

    Parameter Description

    a | t

    Log all events. Records every request sent to the device.

    The /lta and /ltt parameters can generate an enormous volume of data and can increase the time it takes to run a test from hours to days. To avoid prolonged testing, use this option only when performing one test.

    g

    Log events for a group of tests within a test category, such as the Random Test.

    c

    Log only events for a test category, such as the Random Test.

    n

    No logging to Dc2.log.

     

  • /ldy
    Determines which messages are recorded in Diags.log*,* the Device Path Exerciser test results log.

    The y parameter specifies the message type.

    Parameter Description

    a | I

    Log information, warnings, errors, and fatal diagnostic errors.

    w

    Logs warnings, errors, and fatal errors.

    e

    Log errors and fatal errors.

    f

    Log only fatal errors.

    n

    No logging to Diags.log.

     

  • /lrz
    Determines whether Device Path Exerciser records test events in Crashn.log, the log that Device Path Exerciser uses when you restart it with the /c or /r parameters.

    The z parameter specifies the events.

    Parameter Description

    r | a

    Log all test information required to restart a test.

    n

    No logging to Crashn.log.

    If you use this option, Device Path Exerciser will not be able to skip tests completed during this test session (/r) or skip tests that crashed the system during this test session (/c).

     

/pd

Displays the object names of all the devices installed on the system.

/?

Displays help.

Comments

Device Path Exerciser can test multiple drivers or one device in each test session. If you list multiple devices in a command, Device Path Exerciser tests only the last device listed. All other devices are ignored.

If you omit all the parameters that select a driver or device to test (/dr, /d, device, /rd, /a), Device Path Exerciser prompts you for a device by displaying the name of every device in the system. To skip to a particular device during the prompt, type a forward slash (/) followed by the device name, such as /cdrom.

For descriptions of the logs, see Device Path Exerciser Logs.

 

 

Send comments about this topic to Microsoft

Build date: 9/28/2012