IOCTL_PAR_IS_PORT_FREE IOCTL (ntddpar.h)

IOCTL_PAR_IS_PORT_FREE要求は、並列ポート用のシステム提供のバス ドライバーが要求を処理する時点で、並列デバイスの親並列ポートが空いているかどうかを判断します。 この要求は、主にユーザー モード クライアントに対して提供されます。

この要求は、I/O マネージャーがデバイス制御要求に対して並列ポート バス ドライバーのディスパッチ ルーチンを呼び出した直後に処理されます。 ただし、並列ポート の状態は、並列ポート バス ドライバーが要求を完了してから、コントロールがユーザー モード クライアントに戻る時間の間に変化する可能性があることに注意してください。

カーネル モード クライアントは、システム提供の PPARALLEL_TRY_ALLOCATE_ROUTINE コールバックを呼び出すことによって、並列ポートが空きかどうかを直接判断できます。

詳細については、「 並列デバイスで使用するために ParallelPort をロックおよびロック解除する」を参照してください。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

[なし] :

入力バッファーの長さ

[なし] :

出力バッファー

AssociatedIrp.SystemBuffer メンバーは、クライアントが並列ポートの状態を出力するために割り当てる BOOLEAN バッファーを指します。 並列ポートが空の場合、並列ポート用のシステム提供の関数ドライバーは、バッファーを TRUE に設定します。それ以外の場合は、バッファーを FALSE に設定 します

出力バッファーの長さ

BOOLEAN の長さ。

ステータス ブロック

Information メンバーは、BOOLEAN のサイズ (バイト単位) に設定されます。

Status メンバーは、並列デバイスに対するデバイス制御要求によって返される汎用状態値の 1 つに、または次の値に設定されます。

STATUS_BUFFER_TOO_SMALL

Parameters.DeviceIoControl.OutputBufferLength メンバーは、BOOLEAN のサイズ (バイト単位) 未満です。

要件

要件
Header ntddpar.h (Ntddpar.h を含む)

こちらもご覧ください

IOCTL_INTERNAL_PARALLEL_PORT_FREE

PPARALLEL_TRY_ALLOCATE_ROUTINE

IOCTL_INTERNAL_LOCK_PORT