Creating WDTF Scenarios
Before you start to develop WDTF scenarios, you must install WDTF. See WDTF Quick Start for more information.
The following sections in this topic describe how to create basic WDTF scenarios.
The following VBScript code sample (WDTF_Sample1.vbs) shows a simplified scenario that uses WDTF to enable and disable every non-phantom device. A non-phantom device is any physically present device. For complete samples, see Sample WDTF Scenarios.
Set WDTF = WScript.CreateObject("WDTF.WDTF") For Each Device In WDTF.DeviceDepot.Query("IsPhantom=false AND IsDisableable") On Error Resume Next Set DevMan = Device.GetInterface("DeviceManagement") If err <> 0 Then DevMan.Disable() DevMan.Enable() End If Next
You can run this scenario by running CScript.exe WDTF_Sample1.vbs.
Some programming languages, such as VBScript, do not easily manage object references. To simplify this management in WDTF, each target provides a Context property that you can use to store arbitrary key/value pairs, including references to active objects. This property is especially useful for storing action interfaces so you can use them later. The following VBScript code example stores an IWDTFSimpleIOStressAction2 action within a named Context item.
deviceObj.Context("IWDTFSimpleIOStressAction2") = SimpleIOObj
Phantom devices are devices that were physically installed on the computer in the past but are not currently present. For example, a phantom device may be a USB mouse that has been unplugged. To speed up and simplify re-installation of a device that is plugged into a computer that is turned on, or removed devices, the Windows operating system keeps the device drivers installed but marks the device as a phantom.
Device-type targets include an IsPhantom attribute (and IsAttached attribute, which is equivalent to IsPhantom=false) that specifies the hardware's physical presence. The following VBScript code example lists a collection of all devices that are physically present in the computer.
Set NonPhantomDevices = WDTF.DeviceDepot.Query ("IsAttached")
For more attribute keywords, see SDEL Tokens.