次の方法で共有


SCardListInterfacesA 関数 (winscard.h)

SCardListInterfaces 関数は、特定のカードによって提供されるインターフェイスの一覧を提供します。

呼び出し元は、サブシステムに既に導入 スマート カードの名前を指定し、カードでサポートされているインターフェイスの一覧を受け取ります。

構文

LONG SCardListInterfacesA(
  [in]      SCARDCONTEXT hContext,
  [in]      LPCSTR       szCard,
  [out]     LPGUID       pguidInterfaces,
  [in, out] LPDWORD      pcguidInterfaces
);

パラメーター

[in] hContext

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

[in] szCard

スマート カード サブシステムに既に導入されているスマート カードの名前。

[out] pguidInterfaces

スマート カードでサポートされているインターフェイスを示すインターフェイス識別子 (GUID) の配列。 この値が NULLの場合、SCardListInterfaces は、pcguidInterfacesで指定された配列の長さを無視し、このパラメーターが pcguidInterfaces と成功コード に NULL されていない場合に返された配列のサイズを返します。

[in, out] pcguidInterfaces

pcguidInterfaces 配列のサイズ。返された配列の実際のサイズを受け取ります。 配列サイズがSCARD_AUTOALLOCATEとして指定されている場合、pcguidInterfaces は GUID ポインターへのポインターに変換され、配列を含むメモリ ブロックのアドレスを受け取ります。 このメモリ ブロックは、SCardFreeMemoryで割り当てを解除する必要があります。

戻り値

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

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

備考

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

SCardListInterfaces 関数はデータベース クエリ関数です。 その他のデータベース クエリ関数の詳細については、「スマート カード データベース クエリ関数の」を参照してください。

次の例は、スマート カードのインターフェイスの一覧を示しています。

LPGUID          pGuids = NULL;
LONG            lReturn;
DWORD           cGuid = SCARD_AUTOALLOCATE;

// Retrieve the list of interfaces.
lReturn = SCardListInterfaces(NULL,
                              (LPCSTR) "MyCard",
                              (LPGUID)&pGuids,
                              &cGuid );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardListInterfaces\n");
    exit(1);   // Or other appropriate action
}

if ( 0 != cGuid )
{
    // Do something with the array of Guids.
    // Remember to free pGuids when done (by SCardFreeMemory).
    // ...
}

手記

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

必要条件

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

関連項目

SCardEstablishContext

SCardFreeMemory

SCardGetProviderId

SCardListCards

SCardListReaderGroups

SCardListReaders