PPARALLEL_TRY_SELECT_ROUTINE コールバック関数 (parallel.h)
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構造体へのポインター。 呼び出し元は、次のメンバーを指定します。
id
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 コールバックは選択要求をキューに入れません。ポートを割り当てることができない場合、ルーチンは直ちにを返します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | parallel.h (Parallel.h を含む) |
IRQL | <=DISPATCH_LEVEL |
こちらもご覧ください
IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO