WTSQuerySessionInformationA 関数 (wtsapi32.h)
指定したリモート デスクトップ セッション ホスト (RD セッション ホスト) サーバー上の指定したセッションのセッション情報を取得します。 ローカルおよびリモート RD セッション ホスト サーバーのセッション情報を照会するために使用できます。
構文
BOOL WTSQuerySessionInformationA(
[in] HANDLE hServer,
[in] DWORD SessionId,
[in] WTS_INFO_CLASS WTSInfoClass,
[out] LPSTR *ppBuffer,
[out] DWORD *pBytesReturned
);
パラメーター
[in] hServer
RD セッション ホスト サーバーへのハンドル。 WTSOpenServer 関数によって開かれたハンドルを指定するか、WTS_CURRENT_SERVER_HANDLEを指定して、アプリケーションが実行されている RD セッション ホスト サーバーを示します。
[in] SessionId
リモート デスクトップ サービスのセッション識別子。 呼び出し元のアプリケーションが実行されているセッション (または現在のセッション) を示すには 、WTS_CURRENT_SESSIONを指定します。 ローカル サーバーでセッション情報を取得する場合にのみ 、WTS_CURRENT_SESSION を指定します。 リモート サーバーでセッション情報のクエリを実行するときに WTS_CURRENT_SESSION が指定されている場合、返されるセッション情報は不整合になります。 返されたデータは使用しないでください。
WTSEnumerateSessions 関数を使用して、指定された RD セッション ホスト サーバー上のすべてのセッションの識別子を取得できます。
別のユーザーのセッションの情報を照会するには、クエリ情報アクセス許可が必要です。 詳細については、「 リモート デスクトップ サービスのアクセス許可」を参照してください。 セッションのアクセス許可を変更するには、リモート デスクトップ サービス構成管理ツールを使用します。
[in] WTSInfoClass
WTSQuerySessionInformation 関数の呼び出しで取得するセッション情報の種類を示すWTS_INFO_CLASS列挙の値。
[out] ppBuffer
要求された情報へのポインターを受け取る変数へのポインター。 データの形式と内容は、 WTSInfoClass パラメーターで指定された情報クラスによって異なります。 返されたバッファーを解放するには、 WTSFreeMemory 関数を呼び出します。
[out] pBytesReturned
ppBuffer で返されるデータのサイズ (バイト単位) を受け取る変数へのポインター。
戻り値
関数が成功した場合、戻り値は 0 以外の値になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
リモート デスクトップ サービスの実行中に現在のセッションのセッション ID を取得するには、WTSQuerySessionInformation を呼び出し、SessionId パラメーターに WTS_CURRENT_SESSIONを指定し、WTSInfoClass パラメーターに WTSSessionId を指定します。 セッション ID は ppBuffer パラメーターで返されます。 リモート デスクトップ サービスが実行されていない場合、 WTSQuerySessionInformation の呼び出しは失敗します。 このような場合は、 ProcessIdToSessionId 関数を呼び出すことで、現在のセッション ID を取得できます。
アプリケーションが物理コンソールで実行されているかどうかを判断するには、SessionId パラメーターに WTS_CURRENT_SESSION、WTSInfoClass パラメーターとして WTSClientProtocolType を指定する必要があります。 ppBuffer が "0" の場合、セッションは物理コンソールにアタッチされます。
注意
wtsapi32.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして WTSQuerySessionInformation を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | wtsapi32.h |
Library | Wtsapi32.lib |
[DLL] | Wtsapi32.dll |
API セット | ext-ms-win-session-wtsapi32-l1-1-0 (Windows 8で導入) |