ITabletContextP::UseNamedSharedMemoryCommunications メソッド
タブレット コンテキストの共有メモリ通信を設定します。
構文
HRESULT UseNamedSharedMemoryCommunications(
[in] DWORD pid,
[in] LPCSTR pszCallerSid,
[in] LPCSTR pszCallerIntegritySid,
[out] DWORD *pdwEventMoreDataId,
[out] DWORD *pdwEventClientReadyId,
[out] DWORD *pdwMutexAccessId,
[out] DWORD *pdwFileMappingId
);
パラメーター
-
pid [in]
-
共有メモリにアクセスするクライアントのプロセス ID。
-
pszCallerSid [in]
-
関数呼び出し元のセキュリティ識別子。
-
pszCallerIntegritySid [in]
-
呼び出し元の関数の整合性を確認できるセキュリティ識別子。
-
pdwEventMoreDataId [out]
-
イベントの名前を作成するために使用される整数。 イベントは、より多くのデータがあるかどうかを示します。
-
pdwEventClientReadyId [out]
-
イベントの名前を作成するために使用される整数。 イベントは、クライアントがデータを受信する準備ができていることを通知します。 イベントは、新しいデータを処理した後に通知されます。
-
pdwMutexAccessId [out]
-
共有メモリのアクセス識別子へのポインター。
-
pdwFileMappingId [out]
-
共有メモリを識別する整数。
戻り値
このメソッドが成功すると、 S_OKが返されます。 それ以外の場合は、 HRESULT エラー コードが返されます。
解説
UseNamedSharedMemoryCommunications メソッドは、タブレット PC 共有メモリ プロトコルの一部です。 管理者特権のないクライアントは、セキュリティ識別子 (SID) と整合性レベルセキュリティ識別子 (IL-SID) を渡して、タブレット サービスがアクセス制御リスト (ACL) を使用して共有メモリ オブジェクトにアクセスできるようにします。 クライアントに昇格された特権がある場合は、UseSharedMemoryCommunications を使用する必要があります。これは、サービスに既に昇格された特権がある場合に呼び出される API です。
SHAREDMEMORY_HEADER構造体には、共有メモリ ヘッダーが格納されます。
SHAREDMEMORY_HEADER構造体は、ファイル マッピングによって参照されるデータからキャストされます。 生パケット データは 、SHAREDMEMORY_HEADERに従います。 pdwEventClientReadyId によって参照されるイベントが発生すると、生パケット データを共有メモリから読み取ることができます。
次の一覧では、共有メモリにアクセスして使用するためのイベントのシーケンスについて説明します。
- クライアントは clientReady イベントを発生させます。
- クライアントは moreData イベントを待機します。
- クライアントはミューテックスを取得します。
- クライアントは、ヘッダーに続く共有メモリのセクションからパケット データを読み取ります。 シリアル番号は、パケット データの後の共有メモリに表示されます。
- クライアントは 、dwEvent の値に応じてデータを処理します。
- クライアントは-1 (0xFFFFFFFF) を dwEvent に書き込みます。
- クライアントはミューテックスを解放します。
- クライアントは clientReady イベントを発生させます。
イベント名は、このメソッドの出力を書式設定することによって作成されます。 次の定義は、sprintf またはその同等の定義と組み合わせて使用して、イベント名を作成できます。
#define WISPTIS_SM_MORE_DATA_EVENT_NAME _T("wisptis-1-%d-%u")
#define WISPTIS_SM_CLIENT_DONE_EVENT_NAME _T("wisptis-2-%d-%u")
#define WISPTIS_SM_SECTION_NAME _T("wisptis-3-%d-%u")
#define WISPTIS_SM_THREAD_EVENT_NAME _T("wisptis-4-%u")
各定義では、%d セクションはプロセス ID に置き換えられ、%u セクションは pdwEventMoreDataId または pdwEventClientReadyId で返される整数に置き換えられます。
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
サポートなし |
ライブラリ |
|