Freigeben über


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

IRP_MJ_DEVICE_CONTROL

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

PPARALLEL_TRY_ALLOCATE_ROUTINE

IOCTL_INTERNAL_LOCK_PORT