IOCTL_SERIAL_WAIT_ON_MASK IOCTL (ntddser.h)
Die IOCTL_SERIAL_WAIT_ON_MASK-Anforderung wird verwendet, um auf das Auftreten eines Warteereignisses zu warten, das mithilfe einer IOCTL_SERIAL_SET_WAIT_MASK-Anforderung angegeben wird.
Eine Wait-on-Mask-Anforderung wird abgeschlossen, nachdem eines der folgenden Ereignisse auftritt:
- Es tritt ein Warteereignis auf, das von der letzten Set-Wait-Mask-Anforderung angegeben wurde.
- Eine IOCTL_SERIAL_SET_WAIT_MASK Anforderung wird empfangen, während eine Wait-on-Mask-Anforderung aussteht. Der Treiber schließt die ausstehende Wait-on-Mask-Anforderung mit einer status von STATUS_SUCCESS ab, und die Ausgabewartemaske ist auf 0 (null) festgelegt.
Ein Client sendet eine IOCTL_SERIAL_WAIT_ON_MASK Anforderung, um auf das Auftreten eines Ereignisses zu warten, das in der Wartemaske angegeben wurde, die von der letzten IOCTL_SERIAL_SET_WAIT_MASK Anforderung bereitgestellt wurde. Wenn ein oder mehrere Ereignisse in der aktuellen Wartemaske auftreten, bevor die IOCTL_SERIAL_WAIT_ON_MASK-Anforderung gesendet wird, wird diese Anforderung sofort mit einer status von STATUS_SUCCESS und einem Ausgabemaskenwert abgeschlossen, der die Ereignisse identifiziert. Wenn kein Ereignis in der Wartemaske auftritt, bevor die IOCTL_SERIAL_WAIT_ON_MASK Anforderung gesendet wird, 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 einer status von STATUS_SUCCESS und einem Ausgabeformatwert ungleich null abgeschlossen wurde, kann der Client eine neue IOCTL_SERIAL_WAIT_ON_MASK Anforderung senden, um auf ein anderes Ereignis in der aktuellen Wartemaske zu warten. Nur ein neues Ereignis, das auftritt, nachdem die vorherige IOCTL_SERIAL_WAIT_ON_MASK Anforderung abgeschlossen wurde, führt dazu, dass die neue IOCTL_SERIAL_WAIT_ON_MASK Anforderung mit einer status von STATUS_SUCCESS und einem Ausgabemaskenwert ungleich null abgeschlossen wird.
Hauptcode
Eingabepuffer
Keine.
Länge des Eingabepuffers
Keine.
Ausgabepuffer
AssociatedIrp.System-Puffer verweist auf einen ULONG-Puffer, der eine Ereigniswartemaske enthält. Die Wartemaske für Ereignisse gibt an, welche Warteereignisse aufgetreten sind. Die Ereigniswartemaske ist auf null oder auf das bitweise OR eines oder mehrerer SERIAL_EV_XXX Flagbits festgelegt.
Länge des Ausgabepuffers
Das Parameters.DeviceIoControl.OutputBufferLength-Element ist auf die Größe eines ULONG-Elements in Bytes festgelegt.
Statusblock
Der Information-Member wird auf die Größe eines ULONG-Elements in Bytes festgelegt.
Das Element Status ist auf einen der generischen Statuswerte für Anforderungen der seriellen Gerätesteuerung festgelegt. Eine status STATUS_INVALID_PARAMETER gibt an, dass keine Warteereignisse festgelegt sind oder dass bereits eine Wait-on-Mask-Anforderung aussteht.
Anforderungen
Anforderung | Wert |
---|---|
Header | ntddser.h (include Ntddser.h) |