PPARALLEL_READ型指定コールバック ルーチンは、並列デバイスからデータを読み取ります。 並列ポート用のシステム提供のバス ドライバーは、このルーチンを提供します。
構文
PPARALLEL_READ PparallelRead;
NTSTATUS PparallelRead(
[in] PVOID Context,
[out] PVOID Buffer,
[in] ULONG NumBytesToRead,
[out] PULONG NumBytesRead,
[in] UCHAR Channel
)
{...}
パラメーター
[in] Context
並列デバイスの物理デバイス オブジェクト (PDO) のデバイス拡張へのポインター。
[out] Buffer
呼び出し元が割り当てる読み取りバッファーへのポインター。
[in] NumBytesToRead
読み取るバイト数を指定します。 呼び出し元によって割り当てられた読み取りバッファー内のバイト数以下である必要があります。
[out] NumBytesRead
並列デバイスから実際に読み取られ、呼び出し元によって割り当てられた読み取りバッファーに保存されたバイト数を指定します。
[in] Channel
使用されません。
戻り値
リターン コード | 形容 |
---|---|
|
要求されたデータがデバイスから正常に転送されました。 |
|
内部操作の結果、NTSTATUS エラーが発生しました。 |
備考
システム提供のPPARALLEL_READコールバックへのポインターを取得するには、カーネル モード ドライバーは、IOCTL_INTERNAL_PARCLASS_CONNECT 要求を使用して、PARCLASS_INFORMATION 構造体を返します。 PARCLASS_INFORMATION構造体の ParallelRead メンバーは、このコールバックへのポインターです。
クライアントは、並列ポートにロックがある場合にのみ、このルーチンを使用できます。 クライアントは、IOCTL_INTERNAL_LOCK_PORT 要求を使用して、並列ポートのロックを取得します。
PPARALLEL_READコールバックは、呼び出し元の IRQL にある呼び出し元のスレッドで実行されます。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | parallel.h (Parallel.h を含む) |