ISCardCmd::BuildCmd メソッド
[ BuildCmd メソッドは、 [要件] セクションで指定されたオペレーティング システムで使用できます。 Windows Server 2003 Service Pack 1 (SP1) 以降、Windows Vista、Windows Server 2008、およびそれ以降のバージョンのオペレーティング システムでは使用できません。 スマート カード モジュールも同様の機能を提供します。
BuildCmd メソッドは、スマート カードに送信するための有効なコマンド アプリケーション プロトコル データ ユニット (APDU) を構築します。
構文
HRESULT BuildCmd(
[in] BYTE byClassId,
[in] BYTE byInsId,
[in] BYTE byP1,
[in] BYTE byP2,
[in] LPBYTEBUFFER pbyData,
[in] LONG *p1Le
);
パラメーター
-
byClassId [in]
-
コマンド クラス識別子。
-
byInsId [in]
-
コマンド命令識別子。
-
byP1 [in]
-
コマンドの最初のパラメーター。
-
byP2 [in]
-
コマンドの 2 番目のパラメーター。
-
pbyData [in]
-
コマンドのデータ部分へのポインター。
-
p1Le [in]
-
返されるデータの予想される長さを含む LONG 整数へのポインター。
戻り値
メソッドは、次のいずれかの可能な値を返します。
リターン コード | 説明 |
---|---|
|
操作は正常に完了しました。 |
|
パラメーターの 1 つが無効です。 |
|
不適切なポインターが渡されました。 |
|
メモリが不足しています。 |
解説
コマンドを別のコマンドにカプセル化するには、 カプセル化を呼び出します。
このインターフェイスによって提供されるすべてのメソッドの一覧については、「 ISCardCmd」を参照してください。
上記の COM エラー コードに加えて、スマート カード関数が呼び出されて要求を完了した場合、このインターフェイスはスマート カード エラー コードを返す場合があります。 詳細については、「 スマート カードの戻り値」を参照してください。
例
次の例は、コマンド APDU を作成する方法を示しています。 この例では、pISCardCmd が ISCardCmd インターフェイスのインスタンスへの有効なポインターであり、pIByteRequest が IByteBuffer ::Initialize メソッドの以前の呼び出しで初期化された IByteBuffer インターフェイスのインスタンスへの有効なポインターであることを前提としています。
LONG lLe = 0;
HRESULT hr;
hr = pISCardCmd->BuildCmd(0x00, // Some cards prefer 0xC0
0xa4, // 'Select File'
0x00,
0x00,
pIByteRequest,
&lLe);
if (FAILED(hr))
{
printf("Failed ISCardCmd::BuildCmd\n");
// Take other error handling action as needed.
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2003 [デスクトップ アプリのみ] |
クライアント サポートの終了 |
Windows XP |
サーバー サポートの終了 |
Windows Server 2003 |
ヘッダー |
|
タイプ ライブラリ |
|
[DLL] |
|
IID |
IID_ISCardCmdは D5778AE3-43DE-11D0-9171-00AA00C18068 として定義されています |
こちらもご覧ください