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 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
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) |