SCardEstablishContext 関数 (winscard.h)

SCardEstablishContext 関数は、データベース操作を実行するリソース マネージャー コンテキスト (スコープ) を確立します。

構文

LONG SCardEstablishContext(
  [in]  DWORD          dwScope,
  [in]  LPCVOID        pvReserved1,
  [in]  LPCVOID        pvReserved2,
  [out] LPSCARDCONTEXT phContext
);

パラメーター

[in] dwScope

リソース マネージャー コンテキストのスコープ。 このパラメーターには、次の値のいずれかを指定できます。

説明
SCARD_SCOPE_USER
データベース操作は、ユーザーのドメイン内で実行されます。
SCARD_SCOPE_SYSTEM
データベース操作は、システムのドメイン内で実行されます。 呼び出し元のアプリケーションには、データベース アクションに対する適切なアクセス許可が必要です。

[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

関連項目

SCardReleaseContext