Condividi tramite


IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE IOCTL (nfpdev.h)

Un client interessato a ricevere notifiche che un messaggio è stato trasmesso invierà la richiesta di IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE al driver di prossimità.

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

Nessuno

Buffer di output

Nessuno

Blocco di stato

Irp->IoStatus.Status è impostato su STATUS_SUCCESS se la richiesta ha esito positivo.

In caso contrario, stato della condizione di errore appropriata come codice NTSTATUS.

Per altre informazioni, vedere valori NTSTATUS.

Osservazioni

  • Un'applicazione client invierà questo IOCTL in un ciclo di controllo all'handle di pubblicazione. Due trasmissioni separate dello stesso messaggio comportano l'attivazione di due eventi.
  • Il client deve inviare un altro IOCTL ogni volta che viene completata la penna. Il driver DEVE utilizzare blocchi appropriati per garantire che il numero di completamenti completati correttamente di questo IOCTL equivalgono al numero di volte in cui la pubblicazione è stata trasmessa.
  • Quando si usa questo IOCTL, sono necessarie le azioni seguenti:
    • Se questo IOCTL viene ricevuto su un handle che non ha avuto esito positivo in precedenza su un IOCTL_NFP_SET_PAYLOAD, il driver DEVE completarlo con STATUS_INVALID_DEVICE_STATE.
    • Il driver deve mantenere l'equivalente di un contatore "CompleteEventImmediately" (ULONG o superiore) nell'handle del file di pubblicazione.
    • Quando questo IOCTL viene ricevuto nel driver:
      • Se il contatore è zero, il driver DEVE eseguire la penna IOCTL per il completamento successivo.
      • Se il contatore è maggiore di zero, il driver DEVE decrementare il contatore di uno e completare immediatamente L'IOCTL con STATUS_SUCCESS immediatamente.
    • Se la pubblicazione viene trasmessa e non è attualmente applicato alcun valore IOCTL, il driver DEVE incrementare il contatore "CompleteEventImmediately" di uno.
    • Se la pubblicazione viene trasmessa mentre è disponibile un IOCTL con penna, il driver DEVE completare l'IRP con penna con STATUS_SUCCESS e NON incrementare il contatore "CompleteEventImmediately".
    • Se L'IOCTL contiene un buffer di input o output, il driver DEVE completare L'IOCTL con STATUS_INVALID_PARAMETER.
    • Se l'oggetto IOCTL viene ricevuto mentre un altro oggetto è attualmente sottoposto a penna nell'handle di pubblicazione, il secondo (o versione successiva) deve essere completato con STATUS_INVALID_DEVICE_STATE.
    • Il driver DEVE supportare CancelIo dell'IOCTL pended.

Fabbisogno

Requisito Valore
client minimo supportato Windows 8
intestazione nfpdev.h

Vedere anche

guida di progettazione generale NFC (Near Field Communication)

guida alla progettazione della prossimità del campo vicino (tocco e do, modello di provider NFP, requisiti del driver)