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 へのポインター。

戻り値

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

リターン コード 説明
Success
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

こちらもご覧ください

SCardConnect

SCardDisconnect