Te.Service

Some TAEF features, such as Cross Machine Test Execution and RunAs, require that Te.Service is installed and started.

Installing and Starting Te.Service

  • Ensure that Wex.Services.exe, Wex.Common.dll, and Wex.Communication.dll all exist in the same directory. The default location is the \Testing\Runtimes\TAEF subdirectory of the WDK

  • From an elevated command prompt, type the following:

    cd [your Wex.Services.exe directory]
    Wex.Services.exe /install:Te.Service
    sc start Te.Service
    

    Note On CoreSystem, Te.Service can run as a console application instead of a service.

cd [your Wex.Services.exe directory]
Wex.Services.exe /run:Te.Service

Stopping and Removing Te.Service

  • From an elevated command prompt, type the following:

    cd [your Wex.Services.exe directory]
    sc stop Te.Service
    Wex.Services.exe /remove:Te.Service
    

    On CoreSystem, close the console application running Te.Service.

Processor Architectures Supported

Both the x86 and x64 versions of Te.Service support executing x86 and x64 tests.

Safe Mode Installation Instructions

By default, you will not be able to start the service in the Safe Mode. When you try to run sc start Te.Service, you'll get the following error: Error 1084: This service cannot be started in Safe Mode and this error is by (Windows) design.

To enable the TAEF service Safe Mode functionality, you need to:

  • Restart your computer in Safe Mode by pressing F8 before the Windows splash screen.
  • Click Start, click Run, type regedit, and then click OK.
  • Locate and then click the following registry subkey:
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal (for pure safe mode)
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Network (for safe mode with networking)
  • On the Edit menu, point to New, click Key, and then type Te.Service.
  • Double-click Default, type Service in the Value data box, and then click OK.
  • Quit Registry Editor, and then restart your computer.
  • Open a command window with elevation privileges.
  • Now you should successfully start the service using sc start Te.Service

Subscribing to Notifications

When developing your server-running tests, you can subscribe for some server notifications in a way similar to the HandlerEx callback function. Currently, only the SERVICE_CONTROL_SESSIONCHANGE control code is supported.

To subscribe:

  • Define a callback function with a signature of the HandlerEx callback function.
  • Register this function using TAEF notification API
  • Unregister this function when you no longer want to receive notifications.
  • Link your code to Te.Common.lib

Example:

    // define a call back function
    DWORD WINAPI HandlerEx(DWORD dwControl, DWORD dwEventType, LPVOID, LPVOID)
    {
        // Do some work here
        return 0;
    }

    // register the callback function to receive notifications
    TestNotification::RegisterHandler(HandlerEx));