Compartir a través de


IOCTL_NFCSE_GET_NEXT_EVENT IOCTL (nfcsedev.h)

El código de control IOCTL_NFCSE_GET_NEXT_EVENT devuelve el siguiente evento disponible en el búfer o si no hay más eventos almacenados en búfer pendientes hasta que haya disponible un evento de elemento seguro. Los detalles del evento se deben devolver al autor de la llamada.

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

None

Longitud del búfer de entrada

None

Búfer de salida

Un DWORD que indica el tamaño de la estructura SECURE_ELEMENT_EVENT_INFO más su carga útil, seguido inmediatamente de la propia estructura SECURE_ELEMENT_EVENT_INFO .

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_INVALID_DEVICE_STATE Este código se devuelve cuando se llama a este IOCTL en un identificador de dispositivo que tiene un nombre de archivo distinto de SEEvents o cuando ya hay otra solicitud pendiente que aún no se ha completado.
STATUS_INVALID_PARAMETER Este código se devuelve cuando el búfer de salida es distinto de cero o cuando el GUID del elemento seguro no coincide con ninguno de los identificadores enumerados.

Comentarios

A continuación se muestran los requisitos a los que debe cumplir el controlador.

  • Se debe llamar a este IOCTL en un identificador que tenga un nombre de archivo relativo SEEvents ; de lo contrario, el controlador devuelve STATUS_INVALID_DEVICE_STATE
  • Este controlador debe admitir CancelIO para este IOCTL pendiente.
  • Este controlador debe mantener una cola recibida de los eventos de elemento seguro recibidos que coincidan con el tipo de suscripción.
  • Se deben cumplir las siguientes condiciones cuando se recibe este IOCTL en el controlador:
    • Si la cola recibida está vacía, el controlador debe poner en lápiz el IOCTL para su finalización posterior.
    • Si la cola recibida no está vacía, el controlador debe anular la cola de un evento, copiar el búfer de mensajes en el búfer de salida del IOCTL y completar el IOCTL con STATUS_SUCCESS inmediatamente.
  • Si el controlador completa este IOCTL con STATUS_SUCCESS, el primer DWORD [4 bytes] del búfer de salida debe contener el tamaño de la estructura SECURE_ELEMENT_EVENT_INFO más su carga.
  • Si una información de evento de elemento seguro recibida es demasiado grande para copiarse en el búfer de este IOCTL, el controlador debe copiar el tamaño de búfer necesario en los primeros 4 bytes del búfer de salida, establezca el campo de información del IOCTL en sizeof(DWORD) y complete el IOCTL con STATUS_BUFFER_OVERFLOW. A continuación, el evento debe dejarse en la cola recibida.

Requisitos

Requisito Valor
Header nfcsedev.h