Condividi tramite


Metodo ISCardISO7816::ManageChannel

[Il metodo ManageChannel è 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 ManageChannel costruisce un comando APDU ( Application Protocol Data Unit ) che apre e chiude i canali logici.

La funzione open apre un nuovo canale logico diverso da quello di base. Le opzioni vengono fornite per la scheda per assegnare un numero di canale logico o per il numero di canale logico da fornire alla scheda.

La funzione close chiude in modo esplicito un canale logico diverso da quello di base. Al termine della chiusura, il canale logico sarà disponibile per il riutilizzo.

Sintassi

HRESULT ManageChannel(
  [in]      BYTE       byChannelState,
  [in]      BYTE       byChannel,
  [in, out] LPSCARDCMD *ppCmd
);

Parametri

byChannelState [in]

Il bit b8 di P1 viene usato per indicare la funzione aperta o la funzione close; se b8 è 0, MANAGE CHANNEL aprirà un canale logico e, se b8 è 1, MANAGE CHANNEL chiuderà un canale logico:

P1 = '00' da aprire

P1 = '80' da chiudere

Altri valori sono RFU

byChannel [in]

Per la funzione aperta (P1 = '00'), i bit b1 e b2 di P2 vengono usati per codificare il numero di canale logico nello stesso modo dei byte della classe, gli altri bit di P2 sono RFU.

Quando b1 e b2 di P2 sono NULL, la scheda assegnerà un numero di canale logico che verrà restituito in bit b1 e b2 del campo dati.

Quando b1 e/o b2 di P2 non sono NULL, codificano un numero di canale logico diverso da quello di base; quindi la scheda aprirà il numero di canale logico assegnato esternamente.

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 e restituito internamente un oggetto ISCardCmd 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
È stato passato un puntatore non valido.
E_OUTOFMEMORY
Memoria insufficiente.

 

Commenti

Quando la funzione aperta viene eseguita correttamente dal canale logico di base, il mf deve essere selezionato in modo implicito come DF corrente e lo stato di sicurezza del nuovo canale logico deve essere uguale al canale logico di base dopo ATR. Lo stato di sicurezza del nuovo canale logico deve essere separato da quello di qualsiasi altro canale logico.

Quando la funzione open viene eseguita correttamente da un canale logico, che non è quello di base, la funzione definita dall'utente corrente del canale logico che ha emesso il comando verrà selezionata come DF corrente. Inoltre, lo stato di sicurezza per il nuovo canale logico deve corrispondere allo stato di sicurezza del canale logico da cui è stata eseguita la funzione aperta.

Dopo una funzione di chiusura riuscita, lo stato di sicurezza correlato a questo canale logico viene perso.

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 della 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 53B6AA68-3F56-11D0-916B-00AA00C18068

Vedi anche

ISCardISO7816