監視會話連線和中斷連線
對於服務應用程式,例如虛擬通道伺服器應用程式,若要監視會話連線和中斷連線,您必須向遠端桌面服務註冊它。 若要向遠端桌面服務註冊應用程式,請在登錄中新增子機碼,以將虛擬通道伺服器應用程式的名稱儲存在登錄中:
\ HKEY_LOCAL_MACHINE系統\CurrentControlSet\控制\TerminalServer\增益集
子機碼可以有任何名稱。 它必須具有 REG_SZ 值 Name,其中包含應用程式的符號名稱。
Name = AddinName
子機碼和 Name 值的最大長度為 99 個字元。
子機碼也必須有指出伺服器應用程式類型的 REG_DWORD 值。
Type = AddinType
AddinType 必須是下列值。
值 | 意義 |
---|---|
3 | 使用者模式應用程式,會話空間。 |
服務應用程式的註冊只會在執行註冊之後建立的會話中生效。
針對每個已註冊的服務應用程式,當用戶端連線或中斷會話連線時,遠端桌面服務會發出一組事件物件訊號。 每個虛擬通道外掛程式都必須自行註冊,並藉由呼叫 CreateEvent來建立通知事件。 這些事件物件的名稱會遵循下列格式。
AddinName-Reconnect
AddinName-Disconnect
AddinName 是在登錄伺服器應用程式所在登錄子機碼的 Name 值中指定的字串。 在會話下建立這些事件會導致在特殊個別會話事件目錄中建立這些事件。 事件目錄藉由防止其他會話中的應用程式修改這些事件的狀態,來提供額外的安全性。
若要控制是否在伺服器上收到 RECONNECT 和 DISCONNECT 事件,您可以將 RemoteControlPersistent 旗標放在登錄的下列機碼底下:
\ HKEY_LOCAL_MACHINE系統\CurrentControlSet\控制\TerminalServer\增益集\addinname
旗標會在用戶端會話啟動或停止時啟用或停用 RECONNECT 和 DISCONNECT 事件發出訊號。 REG_DWORD值的語法如下。
RemoteControlPersistent = flag
旗標的值可以是一或零。 零是預設值。 如果設定為其中一個,服務應用程式將不會在用戶端會話啟動或停止時收到通知。 如果設定為零,當用戶端會話啟動時,就會發出 RECONNECT 事件訊號,而當用戶端會話停止時,就會發出 DISCONNECT 事件訊號。
Windows Server 2008 仍支援先前的事件物件名稱格式,以取得回溯相容性。 建議您使用較新的 Windows Server 2008 格式,因為它更安全。
先前的事件格式如下所示。
Global\AddinName-SessionId-Reconnect
Global\AddinName-SessionId-Disconnect
AddinName 是在登錄伺服器應用程式所在登錄子機碼的 Name 值中指定的字串。 SessionId 是用戶端會話的會話識別碼。