KD 接続サーバーのアクティブ化
Windows 用のデバッグ ツールに含まれる KD 接続サーバーは、KdSrv (kdsrv.exe) と呼ばれます。 KD 接続サーバーをアクティブにするには、管理者特権でコマンド プロンプト ウィンドウを開き (管理者として実行)、kdsrv コマンドを入力します。
注 管理者特権がなくても KD 接続サーバーをアクティブ化でき、デバッグ クライアントはサーバーに接続できます。 ただし、管理者特権で KD 接続サーバーをアクティブ化しない限り、クライアントはプロセス サーバーを検出できません。 デバッグ サーバーを検出する方法については、「KD 接続サーバーの検索」を参照してください。
KdSrv は、名前付きパイプ (NPIPE)、TCP、COM ポート、セキュア パイプ (SPIPE)、および Secure Sockets Layer (SSL) などのいくつかのトランスポート プロトコルをサポートします。
KdSrv コマンド ラインの構文は、使用されるプロトコルによって異なります。 次のオプションが利用可能です。
kdsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable]
kdsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable]
kdsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6]
kdsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password]
kdsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password]
kdsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password]
kdsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password]
前述のコマンドのパラメーターには、次のような値があります。
pipe= PipeName
NPIPE または SPIPE プロトコルを使用している場合、PipeName は、パイプの名前として機能する文字列です。 各パイプ名は一意のプロセス サーバーを識別する必要があります。 パイプ名を再利用しようとすると、エラー メッセージが表示されます。 PipeName には、スペースまたは引用符を含めることはできません。 PipeNameに、数値の printf スタイルの書式コード (%x または%d ) を含めることができます。 これは KdSrv のプロセス ID に置き換えられます。 このような 2 番目のコードは、KdSrv のスレッド ID に置き換えられます。
port= ソケット
TCP または SSL プロトコルを使用する場合、ソケット は、ソケットポート番号です。
コロンで区切られたポートの範囲を指定することもできます。 KdSrv は、この範囲内の各ポートが空いているかどうかをチェックします。 空きポートが見つかり、エラーが発生しなければ、KD 接続サーバーが作成されます。 スマート クライアントは、サーバーへの接続に使用されている実際のポートを指定する必要があります。 実際のポートを決定するには、「KD 接続サーバーの検索」で説明されているいずれかの方法を使用します。この KD 接続サーバーが表示されると、ポートの後にコロンで区切られた 2 つの数字が続きます。 最初の番号は、実際に使用されるポートになります。2 番目は無視できます。 たとえば、ポートが =51:60 として指定され、ポート 53 が実際に使用されていると、検索結果には "port=53:60" が表示されます。 (clicon パラメーターを使用して逆接続を確立している場合、クライアントはこの方法でポートの範囲を指定できますが、KD 接続サーバーは実際に使用されるポートを指定する必要があります。)
clicon= クライアント
TCP または SSL プロトコルを使用しclicon パラメーターを指定している場合は、逆方向の接続が開かれます。 これは、KD 接続サーバーがクライアントに接続を開始させるのではなく、スマート クライアントに接続しようとすることを意味します。 これは、通常の方向の接続を妨げているファイアウォールがある場合に便利です。 Client は、スマート クライアントが存在するコンピューター、またはスマート クライアントが作成されるコンピューターのネットワーク名または IP アドレスを指定します。 2 つの最初の円記号 (\) は省略可能です。
KD 接続サーバーが 1 つの特定のクライアントを探しているため、このメソッドを使用する場合、サーバーに複数のクライアントを接続することはできません。 接続が拒否された場合、または切断された場合は、プロセス サーバーを再起動する必要があります。 -QR コマンド ライン オプションを使用してすべてのアクティブなサーバーを表示すると、逆接続の KD 接続サーバーは表示されません。
注 clicon を使用する場合は、KD接続サーバーを作成する前にスマート クライアントを起動するのが最善ですが、通常の順序 (クライアントの前にサーバー) でも構いません。
port= COMPort
COM プロトコルを使用している場合、COMPort は、使用する COM ポートを指定します。 プレフィックス "COM" は省略可能です。たとえば、"com2" と "2" の両方が受け入れられます。
baud= BaudRate
COM プロトコルを使用している場合、BaudRate は、接続が実行されるボー レートを指定します。 ハードウェアでサポートされている任意のボー レートが許可されます。
channel= COMChannel
COM プロトコルを使用している場合、COMChannel は、デバッグ クライアントとの通信に使用する COM チャンネルを指定します。 0 から 254 までの任意の値を指定できます。 異なるチャネル番号を使用して複数の接続に対して 1 つの COM ポートを使用することができます。 (これは、デバッグ ケーブルの COM ポートの使用とは異なります。その状況では、COM ポート内のチャネルを使用することはできません。)
proto= 議定書
SSL または SPIPE プロトコルを使用している場合、Protocol は、Secure Channel (S-Channel) プロトコルを指定します。 文字列 tls1、pct1、ssl2、または ssl3 のいずれかを指定できます。
Cert
SSL または SPIPE プロトコルを使用している場合、Cert は、証明書を指定します。 証明書の名前または証明書の拇印 (証明書のスナップインによって指定された 16 進数の文字列) のいずれかを指定できます。 構文 certuser=Cert を使用すると、デバッガーはシステムストア (既定のストア) で証明書を検索します。 構文 machuser=Cert を使用すると、デバッガーはマシンのストアで証明書を検索します。 指定した証明書は、サーバー認証をサポートする必要があります。
hidden
-QR コマンド ライン オプションを使用してすべてのアクティブなサーバーを表示すると、KD 接続サーバーは表示されません。
password= パスワード
スマート クライアントでは、KD 接続サーバーに接続するには、指定されたパスワードを入力する必要があります。 Password は、最大 12 文字の英数字文字列を指定できます。
警告TCP、NPIPE、または COM プロトコルでパスワードを使用すると、パスワードが暗号化されていないため、保護の量が少なくなります。 SSL または SPIPE プロトコルでパスワードを使用すると暗号化されます。 セキュリティで保護されたリモート セッションを確立する場合は、SSL または SPIPE プロトコルを使用する必要があります。
ipversion=6
(Windows 6.6.07 以前用のデバッグツールのみ) TCP を使用してインターネットに接続するときに、デバッガーに IP バージョン 4 でなく強制的にバージョン 6 を使用させます。 Windows Vista 以降のバージョンでは、デバッガーは自動的に IP バージョン 6 を既定値に設定しようとするため、このオプションは不要です。
IcfEnable
インターネット接続ファイアウォールがアクティブな場合に、TCP または名前付きパイプ通信に必要なポート接続を有効にします。 既定では、インターネット接続ファイアウォールはこれらのプロトコルで使用されるポートを無効にします。 IcfEnable が TCP 接続で使用されていると、デバッガーは Windows に Socket パラメーターで指定されたポートを開かせます。 IcfEnable が名前付きパイプ接続で使用されている場合、デバッガーは Windows に名前付きパイプに使用されるポート (ポート 139 および 445) を開かせます。 接続が終了しても、デバッガーはこれらのポートを閉じません。