次の方法で共有


Te.Service

マシン間でのテスト実行RunAs など、TAEF の一部の機能では、Te.Service をインストールして起動する必要があります。

Te.Service をインストールして起動する

  • Wex.Services.exe、Wex.Common.dll、Wex.Communication.dll が、すべて同じディレクトリに存在することを確認します。 既定の場所は、WDK の \Testing\Runtimes\TAEF サブディレクトリです。

  • 管理者特権のコマンド プロンプトで、以下のように入力します。

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

    注: CoreSystem では、Te.Service をサービスとしてではなく、コンソール アプリケーションとして実行できます。

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

Te.Service を停止して削除する

  • 管理者特権のコマンド プロンプトで、以下のように入力します。

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

    CoreSystem で、Te.Service を実行しているコンソール アプリケーションを閉じます。

サポートされるプロセッサ アーキテクチャ

x86 バージョンと x64 バージョンのどちらの Te.Service でも、x86 テストと x64 テストの実行がサポートされています。

セーフ モードでのインストール手順

既定では、セーフ モードでサービスを起動することはできません。 Sc start Te.Service を実行しようとすると、"Error 1084: This service cannot be started in Safe Mode" (エラー 1084: このサービスはセーフ モードで起動できません) というエラーが表示されます。このエラーは (Windows の) 設計上のものです。

TAEF サービスのセーフ モード機能を有効にするには、以下の手順に従います。

  • Windows のスプラッシュ画面が表示される前に F8 キーを押して、コンピューターをセーフ モードで再起動します。
  • [スタート] ボタン、 [ファイル名を指定して実行] の順にクリックし、「regedit」と入力して [OK] をクリックします。
  • 次のレジストリ サブキーを見つけてクリックします:
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal (純粋なセーフ モードの場合)
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Network (ネットワークが有効なセーフ モードの場合)
  • [編集] メニューの [新規作成] をポイントし、[キー] をクリックし、「Te.Service」と入力します。
  • [既定] をダブルクリックし、[値のデータ] ボックスに「Service」と入力して、[OK] をクリックします。
  • レジストリ エディターを終了して、コンピューターを再起動します。
  • 昇格権限でコマンド ウィンドウを開きます。
  • これで、sc start Te.Service を使用してサービスが正常に起動するはずです。

通知にサブスクライブする

サーバー実行テストを開発する際には、HandlerEx コールバック関数と同様の方法で一部のサーバー通知をサブスクライブできます。 現時点では、SERVICE_CONTROL_SESSIONCHANGE コントロール コードのみがサポートされています。

サブスクライブするには、以下のことを行います。

  • HandlerEx コールバック関数のシグネチャを使用してコールバック関数を定義します。
  • TAEF 通知 API を使用して、この関数を登録します。
  • 通知を受け取る必要がなくなった場合は、この関数の登録を解除します。
  • コードを Te.Common.lib にリンクします。

例:

    // 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));