Condividi tramite


Metodo ISCardISO7816::WriteRecord

[Il metodo WriteRecord è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. Non è disponibile per l'uso in Windows Server 2003 con Service Pack 1 (SP1) e versioni successive, Windows Vista, Windows Server 2008 e versioni successive del sistema operativo. I moduli smart card offrono funzionalità simili.

Il metodo WriteRecord costruisce un comando APDU ( Application Protocol Data Unit ) che avvia una delle operazioni seguenti:

  • Scrittura una volta di un record.
  • OR logico dei byte di dati di un record già presente nella scheda con i byte di dati del record specificato nell'APDU del comando.
  • And logico dei byte di dati di un record già presente nella scheda con i byte di dati del record specificato nell'API del comando.

Quando non viene specificata alcuna indicazione nel byte di codifica dei dati, il comportamento OR logico si applica.

Nota

Quando si usa l'indirizzamento del record corrente, il comando imposta il puntatore del record nel record aggiornato correttamente.

 

Sintassi

HRESULT WriteRecord(
  [in]      BYTE         byRecordId,
  [in]      BYTE         byRefCtrl,
  [in]      LPBYTEBUFFER pData,
  [in, out] LPSCARDCMD   *ppCmd
);

Parametri

byRecordId [in]

Identificazione record. Questo è il valore P1:

P1 = '00' designa il record corrente.

P1 != '00' è il numero del record specificato.

byRefCtrl [in]

Codifica del controllo di riferimento P2.

Valore Significato
Ef corrente
Posizione bit: 00000---
Ef attualmente selezionato.
ID EF breve
Posizione bit: xxxxx---
Identificatore EF breve.
Primo record
Posizione bit: -----000
Ultimo record
Posizione bit: -----001
Record successivo
Posizione bit: -----010
Record precedente
Posizione bit: -----011
Record # in P1
Posizione bit: -----100

 

pData [in]

Puntatore al record da scrivere.

ppCmd [in, out]

In input, un puntatore a un oggetto interfaccia ISCardCmd o NULL.

Al ritorno, viene riempito con il comando APDU costruito da questa operazione. Se ppCmd è stato impostato su NULL, viene creato internamente un oggetto ISCardCmd e restituito tramite il puntatore ppCmd.

Valore restituito

Il metodo restituisce uno dei valori possibili seguenti.

Codice restituito Descrizione
S_OK
Operazione completata correttamente.
E_INVALIDARG
Parametro non valido.
E_POINTER
Un puntatore non valido è stato passato.
E_OUTOFMEMORY
Memoria insufficiente.

 

Commenti

Il comando incapsulato può essere eseguito solo se lo stato di sicurezza della smart card soddisfa gli attributi di sicurezza del file elementare da elaborare.

Quando il comando contiene un identificatore elementare breve valido, imposta il file come file elementare corrente. Se un altro file elementare è attualmente selezionato al momento dell'emissione di questo comando, questo comando può essere elaborato senza identificare il file attualmente selezionato.

Se il comando incapsulato si applica a un file elementare predefinito o ciclico lineare o ciclico, interromperà se la lunghezza del record è diversa dalla lunghezza del record esistente. Se si applica a un file elementare strutturato a variabile lineare, può essere eseguito quando la lunghezza del record è diversa dalla lunghezza del record esistente.

Se P2=xxxxx011 e il file elementare è file ciclico, questo comando ha lo stesso comportamento di un comando costruito usando AppendRecord.

I file elementari senza una struttura di record non possono essere scritti in. Il comando costruito interrompe se applicato a un file elementare senza una struttura di record.

Per un elenco di tutti i metodi forniti da questa interfaccia, vedere ISCardISO7816.

Oltre ai codici di errore COM elencati in precedenza, questa interfaccia può restituire un codice di errore della smart card se è stata chiamata una funzione smart card per completare la richiesta. Per altre informazioni, vedere Valori restituiti smart card.

Requisiti

Requisito Valore
Client minimo supportato
Windows XP [solo app desktop]
Server minimo supportato
Windows Server 2003 [solo app desktop]
Fine del supporto client
Windows XP
Fine del supporto server
Windows Server 2003
Intestazione
Scardssp.h
Libreria dei tipi
Scardsrv.tlb
DLL
Scardssp.dll
IID
IID_ISCardISO7816 è definito come 53B6A68-3F56-11D0-916B-00AA0C18068

Vedi anche

AppendRecord

ISCardISO7816

ReadRecord

UpdateRecord