次の方法で共有


SCardIntroduceReaderA 関数 (winscard.h)

SCardIntroduceReader 関数は、既存の スマート カードリーダーの新しい名前を導入します。

スマートカードリーダー は自動的にシステムに導入されることに注意してください。スマート カード リーダー ベンダーのセットアップ プログラムでは、システムにスマート カード リーダーを導入することもできます。
 

構文

LONG SCardIntroduceReaderA(
  [in] SCARDCONTEXT hContext,
  [in] LPCSTR       szReaderName,
  [in] LPCSTR       szDeviceName
);

パラメーター

[in] hContext

リソース マネージャー コンテキストを識別するハンドル。 リソース マネージャー コンテキストは、SCardEstablishContextを する以前の呼び出しによって設定されます。 このパラメーターは NULLできません。

[in] szReaderName

閲覧者に割り当てる表示名。

[in] szDeviceName

スマート カード リーダーのシステム名 ("MyReader 01" など)。

戻り値

この関数は、成功するか失敗したかに応じて異なる値を返します。

リターン コード 形容
成功 の
SCARD_S_SUCCESS。
エラーの
エラー コード。 詳細については、「スマート カードの戻り値 を参照してください。

備考

システムにインストールされているすべてのリーダーは、システム名によって自動的に導入されます。 通常、SCardIntroduceReader は、既存のリーダーの名前を変更するためにのみ呼び出されます。

SCardIntroduceReader 関数はデータベース管理機能です。 その他のデータベース管理機能の詳細については、「スマート カード データベース管理機能の」を参照してください。

リーダーを削除するには、SCardForgetReader使用します。

スマート カード リーダーの導入例を次に示します。

// This example renames the reader name.
// This is a two-step process (first add the new
// name, then forget the old name).
LPBYTE    pbAttr = NULL;
DWORD     cByte = SCARD_AUTOALLOCATE;
LONG      lReturn;

// Step 1: Add the new reader name.
// The device name attribute is a necessary value.
// hCardHandle was set by a previous call to SCardConnect.
lReturn = SCardGetAttrib(hCardHandle,
                         SCARD_ATTR_DEVICE_SYSTEM_NAME,
                         (LPBYTE)&pbAttr,
                         &cByte);
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetAttrib\n");
    exit(1);  // Or other error action
}
// Add the reader name.
// hContext was set earlier by SCardEstablishContext.
lReturn = SCardIntroduceReader(hContext,
                               TEXT("My New Reader Name"),
                               (LPCTSTR)pbAttr );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardIntroduceReader\n");
    exit(1);  // Or other error action
}

// Step 2: Forget the old reader name.
lReturn = SCardForgetReader(hContext,
                            (LPCTSTR)pbAttr );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardForgetReader\n");
    exit(1);  // Or other error action
}

// Free the memory when done.
lReturn = SCardFreeMemory( hContext, pbAttr );

手記

winscard.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SCardIntroduceReader を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルまたは実行時エラーが発生する不一致につながる可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winscard.h
ライブラリ Winscard.lib
DLL Winscard.dll

関連項目

SCardEstablishContext

SCardForgetReader の

SCardIntroduceCardType

SCardIntroduceReaderGroup