PPARALLEL_TRY_SELECT_ROUTINE型コールバック ルーチンは、並列ポートに接続されている IEEE 1284.3 のデイジー チェーン デバイスまたは IEEE 1284 エンド オブ チェーン デバイスを選択します。 並列ポート用のシステム提供のファンクション ドライバーは、このルーチンを提供します。
構文
PPARALLEL_TRY_SELECT_ROUTINE PparallelTrySelectRoutine;
NTSTATUS PparallelTrySelectRoutine(
[in] PVOID TrySelectContext,
[in] PVOID TrySelectCommand
)
{...}
パラメーター
[in] TrySelectContext
並列ポートの機能デバイス オブジェクト (FDO) のデバイス拡張へのポインター。
[in] TrySelectCommand
PARALLEL_1284_COMMAND 構造体へのポインター。 呼び出し元は、次のメンバーを指定します。
身分証明書
1284.3 デバイス ID を指定します。
CommandFlags
次のフラグの 0 個以上のビットごとの OR を指定します。
| 価値 | 形容 |
|---|---|
| PAR_END_OF_CHAIN_DEVICE | チェーン終了デバイスを指定します。 |
| PAR_HAVE_PORT_KEEP_PORT | 呼び出し元に割り当てられたポートがあり、ポートが割り当てられた状態を維持することを指定します。 |
戻り値
| リターン コード | 形容 |
|---|---|
|
デバイスが選択されました。 |
|
デバイス ID が無効です。 |
|
呼び出し元はPAR_HAVE_PORT_KEEP_PORTを指定しておらず、並列ポートは既に割り当てられています。 |
|
呼び出し元が並列ポートを割り当てたが、並列ポートのシステム提供の関数ドライバーは、指定された並列デバイスを選択できませんでした。 |
備考
システム提供の PPARALLEL_TRY_SELECT_ROUTINE コールバックへのポインターを取得するために、カーネル モード ドライバーは、PARALLEL_PNP_INFORMATION 構造体を返す IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO 要求を使用します。 PARALLEL_PNP_INFORMATION構造体の TrySelectDevice メンバーは、このコールバックへのポインターです。
カーネル モード ドライバーは、IOCTL_INTERNAL_SELECT_DEVICE 要求または PPARALLEL_TRY_SELECT_ROUTINE コールバックを使用して、並列ポートで並列デバイスを選択できます。 並列ポート関数ドライバーは、並列ポートが既に割り当てられている場合は、選択要求をキューに入れます。 ただし、PPARALLEL_TRY_SELECT_ROUTINE コールバックは選択要求をキューに入れません。ポートを割り当てることができない場合、ルーチンはすぐに戻ります。
必要条件
| 要件 | 価値 |
|---|---|
| ターゲット プラットフォーム の | デスクトップ |
| ヘッダー | parallel.h (Parallel.h を含む) |
| IRQL | <=DISPATCH_LEVEL |
関連項目
IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO