次の方法で共有


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

戻り値

メソッドは、次のいずれかの可能な値を返します。

リターン コード 説明
S_OK
操作は正常に完了しました。
E_INVALIDARG
パラメーターの 1 つが無効です。
E_POINTER
不適切なポインターが渡されました。
E_OUTOFMEMORY
メモリが不足しています。

 

解説

コマンドを別のコマンドにカプセル化するには、 カプセル化を呼び出します。

このインターフェイスによって提供されるすべてのメソッドの一覧については、「 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
ヘッダー
Scarddat.h
タイプ ライブラリ
Scarddat.tlb
[DLL]
Scardssp.dll
IID
IID_ISCardCmdは D5778AE3-43DE-11D0-9171-00AA00C18068 として定義されています

こちらもご覧ください

カプセル 化

ISCardCmd