SCardListReaderGroupsW 関数 (winscard.h)
SCardListReaderGroups 関数は、以前にシステムに導入されたリーダー グループの一覧を提供します。
構文
LONG SCardListReaderGroupsW(
[in] SCARDCONTEXT hContext,
[out] LPWSTR mszGroups,
[in, out] LPDWORD pcchGroups
);
パラメーター
[in] hContext
クエリの リソース マネージャー コンテキスト を識別するハンドル。 リソース マネージャー コンテキストは、 SCardEstablishContext の以前の呼び出しによって設定できます。
このパラメーターが NULL に設定されている場合、リーダー グループの検索はどのコンテキストにも限定されません。
[out] mszGroups
システムに定義され、現在の ターミナルで現在のユーザーが使用できるリーダー グループを一覧表示する複数文字列。 この値が NULL の場合、 SCardListReaderGroups は pcchGroups で指定されたバッファー長を無視し、このパラメーターが null でない場合に返されるバッファーの長さを pcchGroups に書き込み、成功コードを返します。
[in, out] pcchGroups
mszGroups バッファーの長さを文字数で指定し、後続のすべての null 文字を含む、複数文字列構造の実際の長さを受け取ります。 バッファー長が SCARD_AUTOALLOCATE として指定されている場合、 mszGroups はバイト ポインターへのポインターに変換され、マルチ文字列構造を含むメモリ ブロックのアドレスを受け取ります。 このメモリ ブロックは 、SCardFreeMemory で割り当てを解除する必要があります。
戻り値
この関数は、成功するか失敗するかによって異なる値を返します。
リターン コード | 説明 |
---|---|
|
SCARD_S_SUCCESS。 |
|
エラー コード。 詳細については、「 スマート カードの戻り値」を参照してください。 |
注釈
グループが返されるのは、少なくとも 1 つの リーダーが含まれている場合のみです。 これには、 グループ SCard$DefaultReaders が含まれます。 グループ SCard$AllReaders は暗黙的にのみ存在するため、返すことができません。
SCardListReaderGroups 関数はデータベース クエリ関数です。 その他のデータベース クエリ関数の詳細については、「 スマート カード データベース クエリ関数」を参照してください。
例
次の例は、リーダー グループの一覧を示しています。
LPTSTR pmszReaderGroups = NULL;
LPTSTR pReaderGroup;
LONG lReturn;
DWORD cch = SCARD_AUTOALLOCATE;
// Retrieve the list the reader groups.
// hSC was set by a previous call to SCardEstablishContext.
lReturn = SCardListReaderGroups(hSC,
(LPTSTR)&pmszReaderGroups,
&cch );
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardListReaderGroups\n");
else
{
// Do something with the multi string of reader groups.
// Output the values.
// A double-null terminates the list of values.
pReaderGroup = pmszReaderGroups;
while ( '\0' != *pReaderGroup )
{
// Display the value.
printf("%S\n", pReaderGroup );
// Advance to the next value.
pReaderGroup = pReaderGroup + wcslen((wchar_t *) pReaderGroup) + 1;
}
// Remember to free pmszReaderGroups by a call to SCardFreeMemory.
// ...
}
注意
winscard.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SCardListReaderGroups を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winscard.h |
Library | Winscard.lib |
[DLL] | Winscard.dll |