IOCTL_SMARTCARD_SET_PROTOCOL IOCTL (winsmcrd.h)
La solicitud IOCTL_SMARTCARD_SET_PROTOCOL establece el protocolo que el controlador usará 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 de la máscara se va a 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 valores siguientes.
Valor | Significado |
---|---|
STATUS_SUCCESS | Se seleccionó correctamente un protocolo. |
STATUS_NO_MEDIA | No se detecta ninguna tarjeta inteligente en el lector. |
STATUS_IO_TIMEOUT | La operación agotó el tiempo de espera. |
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 |
---|---|
Header | winsmcrd.h |