Freigeben über


IOCTL_SERIAL_WAIT_ON_MASK IOCTL (ntddser.h)

Die IOCTL_SERIAL_WAIT_ON_MASK-Anforderung wird verwendet, um auf das Auftreten eines mit einer IOCTL_SERIAL_SET_WAIT_MASK Anforderung angegebenen Wait-Ereignisses zu warten.

Nach einem der folgenden Ereignisse wird eine Wait-on-Mask-Anforderung abgeschlossen:

  • Ein Wait-Ereignis tritt auf, das von der letzten Set-Wait-Mask-Anforderung angegeben wurde.
  • Eine IOCTL_SERIAL_SET_WAIT_MASK Anforderung wird empfangen, während eine Wartemaskenanforderung aussteht. Der Treiber schließt die ausstehende Wait-on-Mask-Anforderung mit einem Status von STATUS_SUCCESS ab, und die Ausgabewartemaske ist auf Null festgelegt.
Ein Client kann auf die Wartezeitereignisse warten, die durch Flagbits SERIAL_EV_RXCHAR durch SERIAL_EV_EVENT2dargestellt werden. Weitere Informationen zu diesen Ereigniskennzeichnungen finden Sie unter SERIAL_EV_XXX.

Ein Client sendet eine IOCTL_SERIAL_WAIT_ON_MASK Anforderung, auf das Auftreten eines Ereignisses zu warten, das in der von der letzten IOCTL_SERIAL_SET_WAIT_MASK Anforderung bereitgestellten Wartemaske angegeben wurde. Wenn ein oder mehrere Ereignisse im aktuellen Warteformat auftreten, bevor die IOCTL_SERIAL_WAIT_ON_MASK Anforderung gesendet wird, wird diese Anforderung sofort mit einem Status von STATUS_SUCCESS und einem Ausgabeformatwert abgeschlossen, der die Ereignisse identifiziert. Wenn kein Ereignis in der Wartemaske vor dem Senden der IOCTL_SERIAL_WAIT_ON_MASK Anforderung auftritt, wird diese Anforderung als ausstehend markiert und wartet in der seriellen Controllerwarteschlange auf das nächste Vorkommen eines Ereignisses in der aktuellen Wartemaske.

Nachdem die IOCTL_SERIAL_WAIT_ON_MASK-Anforderung eines Clients mit dem Status STATUS_SUCCESS und einem Wert des Nichtzero-Ausgabeformats abgeschlossen wurde, kann der Client eine neue IOCTL_SERIAL_WAIT_ON_MASK Anforderung senden, um auf ein anderes Ereignis im aktuellen Warteformat zu warten. Nur ein neues Ereignis, das auftritt, nachdem die vorherige IOCTL_SERIAL_WAIT_ON_MASK Anforderung abgeschlossen wurde, bewirkt, dass die neue IOCTL_SERIAL_WAIT_ON_MASK Anforderung mit einem Status von STATUS_SUCCESS und einem Wert des Nichtzero-Ausgabeformats abgeschlossen wird.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Nichts.

Eingabepufferlänge

Nichts.

Ausgabepuffer

AssociatedIrp.System Puffer verweist auf einen ULONG-Puffer, der ein Ereigniswarteformat enthält. Das Ereigniswarteformat gibt an, welche Warteereignisse aufgetreten sind. Das Ereigniswarteformat ist auf Null oder auf das bitweise ODER eines oder mehrerer SERIAL_EV_XXX Flagbits festgelegt.

Länge des Ausgabepuffers

Der Parameters.DeviceIoControl.OutputBufferLength Member wird auf die Größe eines ULONG-Elements in Bytes festgelegt.

Statusblock

Das Information Members wird auf die Größe eines ULONG-Elements in Bytes festgelegt.

Der Status- Member ist auf einen der generischen Statuswerte für anforderungen für serielle Gerätesteuerungfestgelegt. Ein Status von STATUS_INVALID_PARAMETER gibt an, dass keine Warteereignisse festgelegt werden, oder eine Wait-on-Mask-Anforderung steht bereits aus.

Anforderungen

Anforderung Wert
Header- ntddser.h (include Ntddser.h)

Siehe auch

IOCTL_SERIAL_SET_WAIT_MASK

SERIAL_EV_XXX