Condividi tramite


Metodo ISCardISO7816::SelectFile

[Il metodo SelectFile è 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 SelectFile costruisce un comando APDU ( Application Protocol Data Unit ) che imposta un file elementare corrente all'interno di un canale logico. I comandi successivi possono fare riferimento implicitamente al file corrente tramite il canale logico.

La selezione di una directory (DF) all'interno del filetore di schede, che può essere la radice (MF) del filetore, lo rende l'DF corrente. Dopo tale selezione, è possibile fare riferimento a un file elementare corrente implicito tramite tale canale logico.

Se si seleziona un file elementare, il file selezionato e il relativo padre vengono impostati come file correnti.

Dopo la reimpostazione della risposta, il mf viene selezionato in modo implicito tramite il canale logico di base, a meno che non venga specificato diversamente nei byte cronologici o nella stringa di dati iniziale.

Sintassi

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

Parametri

byP1 [in]

Controllo di selezione.

P1 (byte superiore in parola): 8 7 6 5 4 3 2 1 Significato
000000xx
Selezionare ID file
00000000
EF, DF o MF
00000001
DF figlio
00000010
Entity Framework in DF
00000011
DF padre di DF corrente

 

Quando P1=00, la scheda conosce una codifica specifica dell'ID file o a causa del contesto di esecuzione del comando se il file da selezionare è mf, un DF o un ef.

Quando P1-P2=0000, se viene specificato un ID file, deve essere univoco negli ambienti seguenti:

  • Elementi figlio immediati dell'DF corrente
  • DF padre
  • Elementi figlio immediati dell'DF padre

Se P1-P2=0000 e se il campo dati è vuoto o uguale a 3F00, selezionare mf.

Quando P1=04, il campo dati è un nome DF, possibilmente troncato a destra.

Se supportato, i comandi successivi con lo stesso campo dati devono selezionare DFS i cui nomi corrispondono al campo dati, ovvero iniziare con il campo dati del comando. Se la scheda accetta il comando con un campo dati vuoto, è possibile selezionare tutti o un sottoinsieme delle DFS.

byP2 [in]

Controllo di selezione.

pData [in]

Dati per l'operazione, se necessario; else, NULL. I tipi di dati passati in questo parametro includono:

  • ID file
  • percorso da MF
  • percorso dalla funzione definita dall'DF corrente
  • Nome DF

lBytesToRead [in]

Vuoto (ovvero 0) o lunghezza massima dei dati previsti in risposta.

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

Se non diversamente specificato, l'esecuzione corretta del comando incapsulato modifica lo stato di sicurezza in base alle regole seguenti:

  • Quando il file elementare corrente viene modificato o quando non è presente alcun file elementare corrente, lo stato di sicurezza specifico di un file elementare corrente viene perso.
  • Quando la directory filestore corrente (DF) è discendente o identica alla precedente DF corrente, lo stato di sicurezza specifico dell'DF corrente viene perso. Lo stato di sicurezza comune a tutti i predecessori comuni della funzione definita dall'DF precedente e nuovo corrente viene mantenuto.

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