Compartir a través de


IOCTL_NFCSE_HCE_REMOTE_RECV IOCTL (nfcsedev.h)

Devuelve el siguiente búfer de datos disponible o, si no hay más datos almacenados en búfer, la solicitud permanecerá pendiente hasta que haya un búfer APDU disponible para su lectura. A continuación, el búfer de datos se devolverá al autor de la llamada. Tenga en cuenta que el autor de la llamada debe asignar un búfer de salida lo suficientemente grande como para contener el APDU más grande que se ha recibido + 4 bytes de sobrecarga.

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 de SECURE_ELEMENT_HCE_DATA_PACKET más su carga útil, seguido inmediatamente de la propia estructura SECURE_ELEMENT_HCE_DATA_PACKET .

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_BUFFER_OVERFLOW El búfer proporcionado era demasiado pequeño para recibir la notificación, el primer DWORD contendrá el tamaño esperado del búfer.
STATUS_INVALID_PARAMETER Si el búfer de entrada es distinto de cero.
STATUS_INVALID_DEVICE_STATE Si el IOCTL se envía en un identificador distinto del nombre relativo "SEManage".

Comentarios

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

  • Este IOCTL se envía en una conexión existente después de que se desencadene el evento HCE Activated.
  • El controlador debe admitir CancelIo en este IOCTL en lápiz.
  • El controlador debe mantener una cola "Recibida" del APDU recibido para la conexión actual.
  • Cuando se recibe este IOCTL en el controlador:
    • Si la cola "Recibido" está vacía, el controlador DEBE escribir el IOCTL para su finalización posterior.
    • Si la cola "Recibida" no está vacía, el controlador DEBE anular la cola de una APDU, copie el búfer de APDU en el búfer de salida de IOCTL y complete 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_HCE_DATA_PACKET más su carga.
  • Si los datos de APDU recibidos son demasiado grandes para copiarse en el búfer de salida 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. Los datos de APDU deben dejarse en la cola "Recibido".

Requisitos

Requisito Valor
Header nfcsedev.h