SCardEstablishContext 関数 (winscard.h)
SCardEstablishContext 関数は、データベース操作を実行するリソース マネージャー コンテキスト (スコープ) を確立します。
構文
LONG SCardEstablishContext(
[in] DWORD dwScope,
[in] LPCVOID pvReserved1,
[in] LPCVOID pvReserved2,
[out] LPSCARDCONTEXT phContext
);
パラメーター
[in] dwScope
リソース マネージャー コンテキストのスコープ。 このパラメーターには、次の値のいずれかを指定できます。
値 | 説明 |
---|---|
|
データベース操作は、ユーザーのドメイン内で実行されます。 |
|
データベース操作は、システムのドメイン内で実行されます。 呼び出し元のアプリケーションには、データベース アクションに対する適切なアクセス許可が必要です。 |
[in] pvReserved1
将来使用するために予約されており、 NULL である必要があります。 このパラメーターを使用すると、適切な特権管理アプリケーションが別のユーザーの代わりに動作できるようになります。
[in] pvReserved2
将来使用するために予約されており、 NULL である必要があります。
[out] phContext
確立された リソース マネージャー コンテキストへのハンドル。 このハンドルは、このコンテキスト内で作業を行おうとしている他の関数に提供できるようになりました。
戻り値
関数が成功した場合、関数は SCARD_S_SUCCESSを返します。
関数が失敗した場合はエラー コードを返します。 詳細については、「 スマート カードの戻り値」を参照してください。
解説
SCardEstablishContext によって返されるコンテキスト ハンドルは、データベース クエリおよび管理機能で使用できます。 詳細については、「 スマート カード データベース クエリ関数 」および 「スマート カード データベース管理機能」を参照してください。
確立されたリソース マネージャー コンテキストを解放するには、 SCardReleaseContext を使用します。
クライアントがリモート セッション (ターミナル サーバーで実行されているクライアント セッションなど) でスマート カード操作を試行し、使用中のオペレーティング システムがスマート カード リダイレクトをサポートしていない場合、この関数はERROR_BROKEN_PIPEを返します。
例
次の例では、リソース マネージャー コンテキストを確立します。
SCARDCONTEXT hSC;
LONG lReturn;
// Establish the context.
lReturn = SCardEstablishContext(SCARD_SCOPE_USER,
NULL,
NULL,
&hSC);
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardEstablishContext\n");
else
{
// Use the context as needed. When done,
// free the context by calling SCardReleaseContext.
// ...
}
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winscard.h |
Library | Winscard.lib |
[DLL] | Winscard.dll |