次の方法で共有


SCardIntroduceCardTypeA 関数 (winscard.h)

SCardIntroduceCardType 関数は、スマート カード データベースに追加することによって、スマート カード サブシステムスマート カード を導入します (アクティブ ユーザーの場合)。

構文

LONG SCardIntroduceCardTypeA(
  [in]           SCARDCONTEXT hContext,
  [in]           LPCSTR       szCardName,
  [in, optional] LPCGUID      pguidPrimaryProvider,
  [in, optional] LPCGUID      rgguidInterfaces,
  [in]           DWORD        dwInterfaceCount,
  [in]           LPCBYTE      pbAtr,
  [in]           LPCBYTE      pbAtrMask,
  [in]           DWORD        cbAtrLen
);

パラメーター

[in] hContext

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

[in] szCardName

ユーザーがカードを認識できる名前。

[in, optional] pguidPrimaryProvider

スマート カードの プライマリ サービス プロバイダーの識別子 (GUID) へのポインター。

[in, optional] rgguidInterfaces

スマート カードでサポートされているインターフェイスを識別する識別子 (GUID) の配列。

[in] dwInterfaceCount

rgguidInterfaces 配列内の識別子の数。

[in] pbAtr

スマート カード データベースのクエリを実行するときに照合目的で使用できる ATR 文字列 を します (詳細については、「SCardListCards」を参照してください)。 この文字列の長さは、通常の ATR 解析によって決まります。

[in] pbAtrMask

スマート カードの ATR と pbAtrで提供される ATR 比較するときに使用するオプションのビットマスク。 この値が null以外の場合は、pbAtrで指定された ATR 文字列と同じ長さのバイト 指す必要があります。 A 指定された ATR 文字列が、pbAtrで指定された ATR と比較されると、A & MpbAtr場合にのみ一致します。ここで、M は指定されたマスクであり、& はビットごとの AND を表します。

[in] cbAtrLen

ATR の長さとオプションの ATR マスク。 この値が 0 の場合、ATR の長さは通常の ATR 解析によって決定されます。 pbAtr 値が指定されている場合、この値を 0 にすることはできません。

戻り値

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

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

備考

この関数はリダイレクトされませんが、リモート デスクトップ セッション内で関数を呼び出してもエラーは発生しません。 これは、結果がローカル コンピューターではなくリモート コンピューターからの結果であることを意味するだけです。

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

スマート カードを削除するには、SCardForgetCardType使用します。

次の例は、カードの種類を導入する方法を示しています。 この例では、hContext が、SCardEstablishContext 関数への以前の呼び出しから取得した有効なハンドルであることを前提としています。

GUID  MyGuid = { 0xABCDEF00,
                 0xABCD,
                 0xABCD,
                 0xAA, 0xBB, 0xCC, 0xDD,
                 0xAA, 0xBB, 0xCC, 0xDD };

static const BYTE MyATR[] =     { 0xaa, 0xbb, 0xcc, 0x00, 0xdd };
static const BYTE MyATRMask[] = { 0xff, 0xff, 0xff, 0x00, 0xff};

LONG            lReturn;

lReturn = SCardIntroduceCardType(hContext, 
                                 L"MyCardName",
                                 &MyGuid,
                                 NULL,    // No interface array
                                 0,       // Interface count = 0
                                 MyATR,
                                 MyATRMask,
                                 sizeof(MyATR));
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardIntroduceCardType\n");

手記

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

必要条件

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

関連項目

SCardEstablishContext

SCardForgetCardType

SCardIntroduceReader

SCardIntroduceReaderGroup

SCardListCards