struttura OPENCARD_SEARCH_CRITERIAA (winscard.h)
La struttura OPENCARD_SEARCH_CRITERIA viene utilizzata dalla funzione SCardUIDlgSelectCard per riconoscere le schede che soddisfano i requisiti stabiliti dal chiamante. È tuttavia possibile chiamare SCardUIDlgSelectCard senza usare questa struttura.
Sintassi
typedef struct {
DWORD dwStructSize;
LPSTR lpstrGroupNames;
DWORD nMaxGroupNames;
LPCGUID rgguidInterfaces;
DWORD cguidInterfaces;
LPSTR lpstrCardNames;
DWORD nMaxCardNames;
LPOCNCHKPROC lpfnCheck;
LPOCNCONNPROCA lpfnConnect;
LPOCNDSCPROC lpfnDisconnect;
LPVOID pvUserData;
DWORD dwShareMode;
DWORD dwPreferredProtocols;
} OPENCARD_SEARCH_CRITERIAA, *POPENCARD_SEARCH_CRITERIAA, *LPOPENCARD_SEARCH_CRITERIAA;
Members
dwStructSize
Lunghezza, in byte, della struttura. Non deve essere NULL.
lpstrGroupNames
Puntatore a un buffer contenente stringhe di nomi di gruppo con terminazione Null. L'ultima stringa nel buffer deve essere terminata da due caratteri Null. Ogni stringa è il nome di un gruppo di schede da includere nella ricerca. Se lpstrGroupNames è NULL, viene eseguita la ricerca del gruppo predefinito (Scard$DefaultReaders).
nMaxGroupNames
Numero massimo di byte (versione ANSI) o caratteri (versione Unicode ) nella stringa lpstrGroupNames .
rgguidInterfaces
Riservato per utilizzi futuri. Matrice di GUID che identifica le interfacce necessarie. Impostare questo membro su NULL.
cguidInterfaces
Riservato per utilizzi futuri. Numero di interfacce nella matrice rgguidInterfaces . Impostare questo membro su NULL.
lpstrCardNames
Puntatore a un buffer che contiene stringhe di nomi di schede con terminazione Null. L'ultima stringa nel buffer deve essere terminata da due caratteri Null. Ogni stringa è il nome di una scheda da individuare.
nMaxCardNames
Numero massimo di byte (versione ANSI) o caratteri (versione Unicode) nella stringa lpstrGroupNames .
lpfnCheck
Puntatore alla routine di verifica della scheda del chiamante. Se non è necessaria alcuna verifica della scheda speciale, questo puntatore è NULL. Se la scheda viene rifiutata dalla routine di verifica, viene restituito FALSE e la scheda verrà disconnessa. Se la scheda viene accettata dalla routine di verifica, viene restituito TRUE .
Il prototipo per la routine di controllo è il seguente.
Boolean Check(
hSCardContext, // the card context passed in the parameter block
hCard, // card handle
pvUserData // pointer to user data passed in the parameter block
);
lpfnConnect
Puntatore alla routine di connessione della scheda del chiamante. Se il chiamante deve eseguire un'elaborazione aggiuntiva per connettersi alla scheda, questo puntatore a funzione viene impostato sulla funzione di connessione dell'utente. Se la funzione di connessione ha esito positivo, la scheda viene lasciata connessa e inizializzata e viene restituito l'handle della scheda.
Il prototipo per la routine di connessione è il seguente.
Connect(
hSCardContext, // the card context passed in the parameter block
szReader, // the name of the reader
mszCards, // multiple string that contains
// the possible card names in the reader
pvUserData // pointer to user data passed in parameter block
);
lpfnDisconnect
Puntatore alla routine di disconnessione della scheda del chiamante.
Il prototipo per la routine di disconnessione è il seguente.
Disconnect(
hSCardContext, // the card context passed in the parameter block
hCard, // card handle
pvUserData // pointer to user data passed in the parameter block
);
pvUserData
Puntatore void ai dati utente. Questo puntatore viene passato al chiamante nelle routine Connect, Check e Disconnect.
dwShareMode
Se lpfnConnect non è NULL, i membri dwShareMode e dwPreferredProtocols vengono ignorati . Se lpfnConnect è NULL e dwShareMode è diverso da zero, viene effettuata una chiamata interna a SCardConnect che usa dwShareMode e dwPreferredProtocols come parametro.
dwPreferredProtocols
Usato per la connessione interna come descritto in dwShareMode.
Commenti
Nota
L'intestazione winscard.h definisce OPENCARD_SEARCH_CRITERIA come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Intestazione | winscard.h |