SCardGetCardTypeProviderNameA 関数 (winscard.h)
SCardGetCardTypeProviderName 関数は、特定のカード名と プロバイダーの種類プロバイダーを含むモジュールの名前 (ダイナミック リンク ライブラリ) を返します。
構文
LONG SCardGetCardTypeProviderNameA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szCardName,
[in] DWORD dwProviderId,
[out] CHAR *szProvider,
[in, out] LPDWORD pcchProvider
);
パラメーター
[in] hContext
リソース マネージャー コンテキストを識別するハンドル。 リソース マネージャー コンテキストは、SCardEstablishContextを
[in] szCardName
このプロバイダー名が関連付けられているカードの種類の名前。
[in] dwProviderId
このカードの種類に関連付けられているプロバイダーの識別子。
価値 | 意味 |
---|---|
|
この関数は、スマート カードのプライマリ サービス プロバイダー の名前を GUID 文字列として取得します。 |
|
この関数は、暗号化サービス プロバイダーの名前を取得します。 |
|
この関数は、キー ストレージ プロバイダー (KSP) |
|
この関数は、カード モジュールの名前を取得します。 |
[out] szProvider
この関数が正常に完了したときに
[in, out] pcchProvider
DWORD 値
出力時、この値は、szProvider 変数内の null ターミネータを含む実際の文字数を表します。
戻り値
この関数は、成功するか失敗したかに応じて異なる値を返します。
リターン コード | 形容 |
---|---|
|
SCARD_S_SUCCESS。 |
|
エラー コード。 詳細については、「スマート カードの戻り値 を参照してください。 |
備考
この関数はリダイレクトされませんが、リモート デスクトップ セッション内で関数を呼び出してもエラーは発生しません。 これは、結果がローカル コンピューターではなくリモート コンピューターからの結果であることを意味するだけです。
この関数が正常に完了すると、
例
次の例は、指定したリーダー コンテキストのプロバイダー名を取得する方法を示しています。 この例では、hContext が、SCardEstablishContext 関数への以前の呼び出しから取得した有効なハンドルであることを前提としています。
LPTSTR szProvider = NULL;
LPTSTR szCardName = _T("WindowsCard");
DWORD chProvider = SCARD_AUTOALLOCATE;
LONG lReturn = SCARD_S_SUCCESS;
// Retrieve the provider name.
// hContext was set by SCardEstablishContext.
lReturn = SCardGetCardTypeProviderName(hContext,
szCardName,
SCARD_PROVIDER_CSP,
(LPTSTR)&szProvider,
&chProvider);
if (SCARD_S_SUCCESS == lReturn)
{
BOOL fSts = TRUE;
HCRYPTPROV hProv = NULL;
// Acquire a Cryptographic operation context.
fSts = CryptAcquireContext(&hProv,
NULL,
szProvider,
PROV_RSA_FULL,
0);
// Perform Cryptographic operations with smart card
// ...
// Free memory allocated by SCardGetCardTypeProviderName.
lReturn = SCardFreeMemory(hContext, szProvider);
}
手記
winscard.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SCardGetCardTypeProviderName を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルまたは実行時エラーが発生する不一致につながる可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winscard.h |
ライブラリ | Winscard.lib |
DLL | Winscard.dll |