IOCTL_SMARTCARD_SET_PROTOCOL IOCTL (winsmcrd.h)
La solicitud IOCTL_SMARTCARD_SET_PROTOCOL establece el protocolo que usará el controlador para comunicarse con la tarjeta inteligente después de detectar la tarjeta (insertada).
Código principal
Búfer de entrada
Irp->AssociatedIrp.SystemBuffer Contiene una máscara de protocolos que son aceptables para las siguientes transmisiones. La máscara puede ser un OR bit a bit de los siguientes valores:
- SCARD_PROTOCOL_RAW
- SCARD_PROTOCOL_T0
- SCARD_PROTOCOL_T1
- SCARD_PROTOCOL_DEFAULT
- SCARD_PROTOCOL_OPTIMAL
Los dos últimos valores son definiciones de bits adicionales que indican que el controlador debe realizar explícitamente la selección de tipos de protocolo (PTS) con los mejores parámetros de comunicación posibles (SCARD_PROTOCOL_OPTIMAL) o usar el protocolo implícito de la tarjeta con parámetros estándar (SCARD_PROTOCOL_DEFAULT). Si la tarjeta solo admite un protocolo con un conjunto de parámetros de comunicación, se omiten los bits.
Parameters.DeviceIoControl.InputBufferLength Debe establecerse en sizeof(ULONG). El controlador decide qué protocolo fuera de la máscara usar con la tarjeta insertada.
Búfer de salida
- Irp->AssociatedIrp.SystemBuffer El controlador almacena el protocolo seleccionado aquí (por ejemplo, SCARD_PROTOCOL_T1). Solo se puede establecer un bit fuera de la máscara.
Longitud del búfer de salida
- Parameters.DeviceIoControl.OutputBufferLength debe ser sizeof(ULONG).
Bloque de estado
Irp->ioStatus.Information debe establecerse en sizeof(ULONG).
Irp->IoStatus.Status se establece en uno de los siguientes valores.
Valor | Significado |
---|---|
STATUS_SUCCESS | Se seleccionó correctamente un protocolo. |
STATUS_NO_MEDIA | No se detecta ninguna tarjeta inteligente en el lector. |
STATUS_IO_TIMEOUT | Se agota el tiempo de espera de la operación. |
STATUS_NOT_SUPPORTED | La tarjeta inteligente no admite ninguno de los protocolos solicitados. |
STATUS_INVALID_DEVICE_REQUEST | La máscara no contiene ningún protocolo conocido. |
Para obtener más información, vea valores NTSTATUS.
Requisitos
Requisito | Valor |
---|---|
encabezado de | winsmcrd.h |