OPENCARD_SEARCH_CRITERIAW estructura (winscard.h)
La función SCardUIDlgSelectCard usa la estructura OPENCARD_SEARCH_CRITERIA para reconocer las tarjetas que cumplen los requisitos establecidos por el autor de la llamada. Sin embargo, puede llamar a SCardUIDlgSelectCard sin usar esta estructura.
Sintaxis
typedef struct {
DWORD dwStructSize;
LPWSTR lpstrGroupNames;
DWORD nMaxGroupNames;
LPCGUID rgguidInterfaces;
DWORD cguidInterfaces;
LPWSTR lpstrCardNames;
DWORD nMaxCardNames;
LPOCNCHKPROC lpfnCheck;
LPOCNCONNPROCW lpfnConnect;
LPOCNDSCPROC lpfnDisconnect;
LPVOID pvUserData;
DWORD dwShareMode;
DWORD dwPreferredProtocols;
} OPENCARD_SEARCH_CRITERIAW, *POPENCARD_SEARCH_CRITERIAW, *LPOPENCARD_SEARCH_CRITERIAW;
Miembros
dwStructSize
Longitud, en bytes, de la estructura. No debe ser NULL.
lpstrGroupNames
Puntero a un búfer que contiene cadenas de nombre de grupo terminadas en null. La última cadena del búfer debe terminar con dos caracteres NULL. Cada cadena es el nombre de un grupo de tarjetas que se va a incluir en la búsqueda. Si lpstrGroupNames es NULL, se busca en el grupo predeterminado (Scard$DefaultReaders).
nMaxGroupNames
Número máximo de bytes (versión ANSI) o caracteres (versión Unicode ) en la cadena lpstrGroupNames .
rgguidInterfaces
Reservado para uso futuro. Matriz de GUID que identifica las interfaces necesarias. Establezca este miembro en NULL.
cguidInterfaces
Reservado para uso futuro. Número de interfaces de la matriz rgguidInterfaces . Establezca este miembro en NULL.
lpstrCardNames
Puntero a un búfer que contiene cadenas de nombre de tarjeta terminadas en NULL. La última cadena del búfer debe terminar con dos caracteres NULL. Cada cadena es el nombre de una tarjeta que se va a ubicar.
nMaxCardNames
Número máximo de bytes (versión ANSI) o caracteres (versión Unicode) en la cadena lpstrGroupNames .
lpfnCheck
Puntero a la rutina de comprobación de la tarjeta del autor de la llamada. Si no se requiere ninguna comprobación especial de la tarjeta, este puntero es NULL. Si la rutina verify rechaza la tarjeta, se devuelve FALSE y la tarjeta se desconectará. Si la rutina verify acepta la tarjeta, se devuelve TRUE .
El prototipo de la rutina de comprobación es el siguiente.
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
Puntero a la rutina de conexión de tarjeta del autor de la llamada. Si el autor de la llamada necesita realizar un procesamiento adicional para conectarse a la tarjeta, este puntero de función se establece en la función connect del usuario. Si la función connect se realiza correctamente, la tarjeta se deja conectada e inicializa y se devuelve el identificador de tarjeta.
El prototipo de la rutina de conexión es el siguiente.
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
Puntero a la rutina de desconexión de la tarjeta del autor de la llamada.
El prototipo de la rutina de desconexión es el siguiente.
Disconnect(
hSCardContext, // the card context passed in the parameter block
hCard, // card handle
pvUserData // pointer to user data passed in the parameter block
);
pvUserData
Puntero void a los datos del usuario. Este puntero se devuelve al autor de la llamada en las rutinas Connect, Check y Disconnect.
dwShareMode
Si lpfnConnect no es NULL, se omiten los miembros dwShareMode y dwPreferredProtocols . Si lpfnConnect es NULL y dwShareMode es distinto de cero, se realiza una llamada interna a SCardConnect que usa dwShareMode y dwPreferredProtocols como parámetro.
dwPreferredProtocols
Se usa para la conexión interna como se describe en dwShareMode.
Comentarios
Nota
El encabezado winscard.h define OPENCARD_SEARCH_CRITERIA como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Encabezado | winscard.h |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de