ISCardISO7816::UpdateRecord メソッド
[ UpdateRecord メソッドは、[要件] セクションで指定したオペレーティング システムで使用できます。 Windows Server 2003 Service Pack 1 (SP1) 以降、Windows Vista、Windows Server 2008、および以降のバージョンのオペレーティング システムでは使用できません。 スマート カード モジュールも同様の機能を提供します。
UpdateRecord メソッドは、APDU コマンドで指定されたビットを使用して特定のレコードを更新するアプリケーション プロトコル データ ユニット (APDU) コマンドを構築します。
Note
現在のレコード アドレス指定を使用する場合、コマンドは正常に更新されたレコードにレコード ポインターを設定します。
構文
HRESULT UpdateRecord(
[in] BYTE byRecordId,
[in] BYTE byRefCtrl,
[in] LPBYTEBUFFER pData,
[in, out] LPSCARDCMD *ppCmd
);
パラメーター
-
byRecordId [in]
-
P1 値:
P1 = 00 は現在のレコードを指定します
P1 != '00' は指定したレコードの番号です
-
byRefCtrl [in]
-
参照コントロール P2 のコーディング:
値 説明 - 現在の EF
ビット位置: 00000---
現在選択されている EF。- 短い EF ID
ビット位置: xxxxx---
短い EF 識別子。- 最初のレコード
ビット位置: -----000 - 最後のレコード
ビット位置: -----001 - 次のレコード
ビット位置: -----010 - 前のレコード
ビット位置: -----011 - P1 のレコード #
ビット位置: -----100 -
pData [in]
-
更新するレコードへのポインター。
-
ppCmd [in, out]
-
入力時に、 ISCardCmd インターフェイス オブジェクトまたは NULL へのポインター。
戻り時には、この操作によって作成された APDU コマンドが入力されます。 ppCmd が NULL に設定されている場合、スマート カードISCardCmd オブジェクトが内部的に作成され、ppCmd ポインターを介して返されます。
戻り値
メソッドは、次のいずれかの値を返します。
リターン コード | 説明 |
---|---|
|
操作は正常に完了しました。 |
|
無効なパラメーター。 |
|
不適切なポインターが渡されました。 |
|
メモリが不足しています。 |
解説
カプセル化されたコマンドは、スマート カードのセキュリティ状態が、処理される基本ファイルのセキュリティ属性を満たす場合にのみ実行できます。
コマンドに有効な短い基本識別子が含まれている場合、ファイルは現在の基本ファイルとして設定されます。 このコマンドの実行時に別の基本ファイルが現在選択されている場合は、現在選択されているファイルを識別せずにこのコマンドを処理できます。
構築されたコマンドが線形固定または循環構造の基本ファイルに適用される場合、レコード長が既存のレコードの長さと異なる場合は中止されます。
コマンドが線形変数構造化基本ファイルに適用される場合は、レコード長が既存のレコードの長さと異なる場合に実行できます。
循環ファイルに適用されるコマンド (P2=xxxxx011) の "previous" オプションは、AppendRecord によって構築されたコマンドと同じ動作 をします。
レコード構造のない基本ファイルは読み取れません。 作成されたコマンドは、レコード構造のない基本ファイルに適用されると中止されます。
このインターフェイスによって提供されるすべてのメソッドの一覧については、「 ISCardISO7816」を参照してください。
上記の COM エラー コードに加えて、要求を完了するためにスマート カード関数が呼び出された場合、このインターフェイスはスマート カード エラー コードを返す場合があります。 詳細については、「 スマート カードの戻り値」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2003 [デスクトップ アプリのみ] |
クライアント サポートの終了 |
Windows XP |
サーバー サポートの終了 |
Windows Server 2003 |
ヘッダー |
|
タイプ ライブラリ |
|
[DLL] |
|
IID |
IID_ISCardISO7816は 53B6AA68-3F56-11D0-916B-00AA00C18068 として定義されています |
関連項目