Condividi tramite


Metodo ISCardISO7816::WriteBinary

[Il metodo WriteBinary è 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 WriteBinary costruisce un comando APDU ( Application Protocol Data Unit ) che scrive valori binari in un file elementare.

A seconda degli attributi del file, il comando esegue una delle operazioni seguenti:

  • L'OR logico dei bit già presenti nella scheda con i bit specificati nell'APDU del comando (stato logico cancellato dei bit del file è 0).
  • L'AND logico dei bit già presenti nella scheda con i bit specificati nell'APDU del comando (stato logico cancellato dei bit del file è 1).
  • Scrittura una sola volta nella scheda dei bit specificati nell'APDU del comando.

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

Sintassi

HRESULT WriteBinary(
  [in]      BYTE         byP1,
  [in]      BYTE         byP2,
  [in]      LPBYTEBUFFER pData,
  [in, out] LPSCARDCMD   *ppCmd
);

Parametri

byP1 [in]

Offset nel percorso di scrittura dall'inizio del file binario (EF). Se b8=1 in P1, b7 e b6 di P1 sono impostati su zero (bit RFU), b5 su b1 di P1 sono un identificatore EF breve e P2 è l'offset del primo byte da scrivere nelle unità dati dall'inizio del file. Se b8=0 in P1, P1|| P2 è l'offset del primo byte da scrivere nelle unità dati dall'inizio del file.

byP2 [in]

Offset nel percorso di scrittura dall'inizio del file binario (EF). Se b8=1 in P1, b7 e b6 di P1 sono impostati su zero (bit RFU), b5 su b1 di P1 sono un identificatore EF breve e P2 è l'offset del primo byte da scrivere nelle unità dati dall'inizio del file. Se b8=0 in P1, P1|| P2 è l'offset del primo byte da scrivere nelle unità dati dall'inizio del file.

pData [in]

Puntatore alla stringa di unità dati 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.

Quando un'operazione binaria di scrittura è stata applicata a un'unità dati di un ef di scrittura una volta, qualsiasi ulteriore operazione di scrittura che fa riferimento a questa unità dati verrà interrotta se il contenuto dell'unità dati o l'indicatore dello stato con cancellazione logica (se presente) collegato a questa unità dati è diverso dallo stato logico cancellato.

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

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

CancelBinary

ISCardISO7816

ReadBinary

UpdateBinary