Compartir a través de


IOCTL_SMARTCARD_IS_PRESENT IOCTL (winsmcrd.h)

El código de control IOCTL_SMARTCARD_IS_PRESENT detecta si se detecta actualmente una tarjeta inteligente. Si hay una tarjeta presente, se devuelve inmediatamente con STATUS_SUCCESS. Si no se detecta ninguna tarjeta inteligente, se suscribe al evento de llegada de la tarjeta inteligente y se mantiene pendiente. Al cerrar el identificador de archivo, se cancela la suscripción del evento.

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

Ninguno.

Búfer de salida

Ninguno.

Bloque de estado

Irp->IoStatus.Status se establece en STATUS_SUCCESS si la solicitud se realiza correctamente. Los códigos de error posibles son:

Código de retorno Descripción
STATUS_PENDING Este código se devuelve si la operación está esperando a que la tarjeta inteligente se acerque al campo de radio.
STATUS_DEVICE_BUSY Este código se devuelve si la operación ya está esperando el evento actual.
STATUS_INVALID_DEVICE_STATE Este código se devuelve si el dispositivo no puede aceptar la solicitud.
STATUS_INVALID_PARAMETER Este código se devuelve cuando los búferes de entrada o salida no son válidos.
STATUS_DEVICE_POWERED_OFF Este código se devuelve cuando el control de radio de proximidad está desactivado.

Comentarios

Se requieren las siguientes acciones al usar este IOCTL:

  • El controlador debe admitir CancelIo en este IOCTL en lápiz.

  • Se trata de una solicitud administrada por energía. El IOCTL en lápiz mantendrá el controlador en un estado de alimentación D0.
  • El controlador debe devolver STATUS_SUCCESS solo para el tipo admitido.

Requisitos

Requisito Valor
Header winsmcrd.h

Consulte también

Guía de diseño de comunicación de campo cercano (NFC)

Guía de diseño de tarjetas inteligentes