Share via


ISCardISO7816::WriteRecord メソッド

[ WriteRecord メソッドは、[要件] セクションで指定したオペレーティング システムで使用できます。 Windows Server 2003 Service Pack 1 (SP1) 以降、Windows Vista、Windows Server 2008、および以降のバージョンのオペレーティング システムでは使用できません。 スマート カード モジュールも同様の機能を提供します

WriteRecord メソッドは、次のいずれかの操作を開始するアプリケーション プロトコル データ ユニット (APDU) コマンドを構築します。

  • レコードの 1 回の書き込み。
  • カードに既に存在するレコードのデータ バイトの論理 OR と、コマンド APDU で指定されたレコードのデータ バイト。
  • カードに既に存在するレコードのデータ バイトの論理 AND と、コマンド APDU で指定されたレコードのデータ バイト。

データ コーディング バイトに何も表示されない場合は、論理 OR 動作が適用されます。

Note

現在のレコード アドレス指定を使用する場合、コマンドは正常に更新されたレコードにレコード ポインターを設定します。

 

構文

HRESULT WriteRecord(
  [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 コマンドが入力されます。 ppCmdNULL に設定されている場合、スマート カードISCardCmd オブジェクトが内部的に作成され、ppCmd ポインターを介して返されます。

戻り値

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

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

 

解説

カプセル化されたコマンドは、スマート カードのセキュリティ状態が、処理される基本ファイルのセキュリティ属性を満たす場合にのみ実行できます。

コマンドに有効な短い基本識別子が含まれている場合、ファイルは現在の基本ファイルとして設定されます。 このコマンドの実行時に別の基本ファイルが現在選択されている場合は、現在選択されているファイルを識別せずにこのコマンドを処理できます。

カプセル化されたコマンドが線形固定または循環構造の基本ファイルに適用される場合、レコード長が既存のレコードの長さと異なる場合は中止されます。 線形変数構造化基本ファイルに適用される場合は、レコード長が既存のレコードの長さと異なる場合に実行される場合があります。

P2=xxxxx011 で基本ファイルが循環ファイルの場合、このコマンドの動作は AppendRecord を使用して作成されたコマンドと同じです。

レコード構造のない基本ファイルを書き込むことができません。 作成されたコマンドは、レコード構造のない基本ファイルに適用されると中止されます。

このインターフェイスによって提供されるすべてのメソッドの一覧については、「 ISCardISO7816」を参照してください。

上記の COM エラー コードに加えて、要求を完了するためにスマート カード関数が呼び出された場合、このインターフェイスはスマート カード エラー コードを返す場合があります。 詳細については、「 スマート カードの戻り値」を参照してください。

必要条件

要件
サポートされている最小のクライアント
Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2003 [デスクトップ アプリのみ]
クライアント サポートの終了
Windows XP
サーバー サポートの終了
Windows Server 2003
Header
Scardssp.h
タイプ ライブラリ
Scardsrv.tlb
[DLL]
Scardssp.dll
IID
IID_ISCardISO7816は 53B6AA68-3F56-11D0-916B-00AA00C18068 として定義されています

関連項目

AppendRecord

ISCardISO7816

ReadRecord

UpdateRecord