IOCTL_PAR_IS_PORT_FREE IOCTL (ntddpar.h)
Die IOCTL_PAR_IS_PORT_FREE-Anforderung bestimmt, ob der übergeordnete parallele Port eines parallelen Geräts zum Zeitpunkt der vom System bereitgestellte Bustreiber für parallele Ports die Anforderung verarbeitet. Diese Anforderung wird hauptsächlich für Benutzermodusclients bereitgestellt.
Diese Anforderung wird sofort verarbeitet, nachdem der E/A-Manager die Verteilerroutine des parallelen Portbustreibers für Gerätesteuerungsanforderungen aufruft. Beachten Sie jedoch, dass sich der Status des parallelen Ports zwischen dem Zeitpunkt ändern kann, zu dem der parallele Portbustreiber die Anforderung abgeschlossen hat, und der Zeit, die das Steuerelement an einen Benutzermodusclient zurückgibt.
Kernelmodusclients können direkt ermitteln, ob ein paralleler Port kostenlos ist, indem der vom System bereitgestellte PPARALLEL_TRY_ALLOCATE_ROUTINE Rückruf aufgerufen wird.
Weitere Informationen finden Sie unter Sperren und Entsperren eines ParallelPorts für die Verwendung durch ein paralleles Gerät.
Hauptcode
Eingabepuffer
Nichts.
Eingabepufferlänge
Nichts.
Ausgabepuffer
Der AssociatedIrp.SystemBuffer Member verweist auf einen BOOLESCHEN Puffer, den der Client zum Ausgeben des Status des parallelen Ports zuweist. Wenn der parallele Port frei ist, legt der vom System bereitgestellte Funktionstreiber für parallele Ports den Puffer auf TRUEfest, andernfalls wird der Puffer auf FALSE-festgelegt.
Länge des Ausgabepuffers
Die Länge eines BOOLESCHEN Werts.
Statusblock
Der Information Member wird auf die Größe eines BOOLEAN in Bytes festgelegt.
Der Status Members wird auf einen der generischen Statuswerte festgelegt, die von Gerätesteuerungsanforderungen für parallele Geräte oder auf den folgenden Wert zurückgegeben werden:
STATUS_BUFFER_TOO_SMALL
Der Parameters.DeviceIoControl.OutputBufferLength Member ist kleiner als die Größe eines BOOLEAN in Bytes.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ntddpar.h (include Ntddpar.h) |
Siehe auch
IOCTL_INTERNAL_PARALLEL_PORT_FREE