IOCTL_SERIAL_GET_WAIT_MASK IOCTL (ntddser.h)
Die IOCTL_SERIAL_GET_WAIT_MASK Anforderung gibt die Ereigniswartemaske zurück, die derzeit für den seriellen Controller festgelegt ist.
Ein Client kann auf die Warteereignisse warten, die durch Flagbits SERIAL_EV_RXCHAR bis SERIAL_EV_EVENT2 dargestellt werden. Weitere Informationen zu diesen Ereignisflags finden Sie im Abschnitt Hinweise.
Um eine Ereigniswartemaske festzulegen, kann ein Client eine IOCTL_SERIAL_SET_WAIT_MASK-Anforderung verwenden. Um auf das Auftreten eines Warteereignisses zu warten, verwendet ein Client eine IOCTL_SERIAL_WAIT_ON_MASK Anforderung.
Hauptcode
Eingabepuffer
Keine.
Länge des Eingabepuffers
Keine.
Ausgabepuffer
Der AssociatedIrp.SystemBuffer-Member verweist auf einen vom Client zugewiesenen ULONG-Puffer, den der serielle Controllertreiber zum Ausgeben der Wartemaske verwendet. Die Wartemaske ist entweder null oder das bitweise OR eines oder mehrerer der SERIAL_EV_XXX-Ereignisflags .
Länge des Ausgabepuffers
Das Parameters.DeviceIoControl.OutputBufferLength-Element ist auf die Größe eines ULONG-Elements in Bytes festgelegt.
Statusblock
Wenn die Anforderung erfolgreich ist, wird das Information-Element auf die Größe eines ULONG-Elements in Bytes festgelegt. Andernfalls wird das Information-Element auf 0 (null) festgelegt.
Das Element Status ist auf einen der generischen Statuswerte für Anforderungen der seriellen Gerätesteuerung festgelegt.
Hinweise
Die SERIAL_EV_XXX-Konstanten definieren die Flagbits im Warteformat für einen seriellen Port.
#define SERIAL_EV_RXCHAR 0x0001 #define SERIAL_EV_RXFLAG 0x0002 #define SERIAL_EV_TXEMPTY 0x0004 #define SERIAL_EV_CTS 0x0008 #define SERIAL_EV_DSR 0x0010 #define SERIAL_EV_RLSD 0x0020 #define SERIAL_EV_BREAK 0x0040 #define SERIAL_EV_ERR 0x0080 #define SERIAL_EV_RING 0x0100 #define SERIAL_EV_PERR 0x0200 #define SERIAL_EV_RX80FULL 0x0400 #define SERIAL_EV_EVENT1 0x0800 #define SERIAL_EV_EVENT2 0x1000
Die SERIAL_EV_XXX-Konstanten definieren die Ereignistypen, die in einem Warteformat angegeben werden können. Nachdem ein Client (Anwendungs- oder Peripherietreiber) eine Verbindung mit einem seriellen Port hergestellt hat, kann der Client eine Wartemaske angeben, die die Ereignistypen angibt, die der Client überwachen muss. Bei diesen Ereignissen handelt es sich um Änderungen im Hardwarezustand des seriellen Ports. Wenn ein Ereignis in der Wartemaske auftritt, wird der Client benachrichtigt.
Die IOCTL_SERIAL_SET_WAIT_MASK - und IOCTL_SERIAL_GET_WAIT_MASK-Steuerelementanforderungen verwenden Ereigniswartemasken, um eine Reihe von Ereignissen anzugeben, auf die ein Client warten kann. Ein Warteformatwert ist entweder null oder der bitweise OR einer oder mehrerer SERIAL_EV_XXX-Konstanten . Ein Warteformatwert von 0 (null) gibt an, dass der Client nicht auf Ereignisse wartet.
Der Client sendet eine IOCTL_SERIAL_WAIT_ON_MASK-Steuerelementanforderung , um auf ein Ereignis in der aktuell festgelegten Wartemaske zu warten. Der serielle Controllertreiber schließt diese Anforderung ab, wenn ein Ereignis in der Wartemaske auftritt.
Die folgende Tabelle zeigt, welche SERIAL_EV_XXX-Flagbits von SerCx2, SerCx und Serial.sys unterstützt werden. Ein Ja-Eintrag in der Tabelle gibt an, dass die serielle Frameworkerweiterung oder der Treiber das entsprechende Flagbit unterstützt. Ein Nein-Eintrag gibt an, dass das Flagbit nicht unterstützt wird.
Flag-Bit | SerCx2 | SerCx | Serial.sys |
---|---|---|---|
SERIAL_EV_RXCHAR | Yes | Yes | Yes |
SERIAL_EV_RXFLAG | Siehe Hinweis. | Nein | Ja |
SERIAL_EV_TXEMPTY | Yes | Yes | Yes |
SERIAL_EV_CTS | Yes | Yes | Yes |
SERIAL_EV_DSR | Yes | Yes | Yes |
SERIAL_EV_RLSD | Siehe Hinweis. | Yes | Yes |
SERIAL_EV_BREAK | Yes | Yes | Yes |
SERIAL_EV_ERR | Yes | Yes | Yes |
SERIAL_EV_RING | Siehe Hinweis. | Yes | Yes |
SERIAL_EV_PERR | Siehe Hinweis. | No | No |
SERIAL_EV_RX80FULL | Siehe Hinweis. | Nein | Ja |
SERIAL_EV_EVENT1 | Siehe Hinweis. | No | No |
SERIAL_EV_EVENT2 | Siehe Hinweis. | No | No |
Anforderungen
Anforderung | Wert |
---|---|
Header | ntddser.h (include Ntddser.h) |