SCardControl 関数 (winscard.h)
SCardControl 関数を使用すると、リーダーを直接制御できます。 SCardConnect の呼び出しが成功した後、SCardDisconnect を正常に呼び出す前にいつでも呼び出すことができます。 リーダーの 状態 への影響は、コントロール コードによって異なります。
構文
LONG SCardControl(
[in] SCARDHANDLE hCard,
[in] DWORD dwControlCode,
[in] LPCVOID lpInBuffer,
[in] DWORD cbInBufferSize,
[out] LPVOID lpOutBuffer,
[in] DWORD cbOutBufferSize,
[out] LPDWORD lpBytesReturned
);
パラメーター
[in] hCard
SCardConnect から返される参照値。
[in] dwControlCode
操作のコードを制御します。 この値は、実行する特定の操作を識別します。
[in] lpInBuffer
操作の実行に必要なデータを含むバッファーへのポインター。 dwControlCode パラメーターが入力データを必要としない操作を指定する場合、このパラメーターは NULL にすることができます。
[in] cbInBufferSize
lpInBuffer が指すバッファーのサイズ (バイト単位)。
[out] lpOutBuffer
操作の出力データを受け取るバッファーへのポインター。 dwControlCode パラメーターが出力データを生成しない操作を指定する場合、このパラメーターは NULL にすることができます。
[in] cbOutBufferSize
lpOutBuffer が指すバッファーのサイズ (バイト単位)。
[out] lpBytesReturned
lpOutBuffer が指すバッファーに格納されているデータのサイズ (バイト単位) を受け取る DWORD へのポインター。
戻り値
この関数は、成功するか失敗したかに応じて異なる値を返します。
リターン コード | 説明 |
---|---|
|
SCARD_S_SUCCESS。 |
|
エラー コード。 詳細については、「 スマート カードの戻り値」を参照してください。 |
注釈
SCardControl 関数は、直接カードアクセス関数です。 その他の直接アクセス機能の詳細については、「 Direct Card Access Functions」を参照してください。
例
次の例では、コントロール コードを発行します。 この例では、hCardHandle が SCardConnect の以前の呼び出しから受信した有効なハンドルであり、dwControlCode が、以前に有効なコントロール コードに初期化された DWORD 型の変数であることを前提としています。 この特定の制御コードでは、入力データは必要なく、出力データも必要ありません。
lReturn = SCardControl( hCardHandle,
dwControlCode,
NULL,
0,
NULL,
0,
0 );
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardControl\n");
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winscard.h |
Library | Winscard.lib |
[DLL] | Winscard.dll |