次の方法で共有


PPARALLEL_READ コールバック関数 (parallel.h)

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

使用されていません。

戻り値

リターン コード 説明
STATUS_SUCCESS
要求されたデータがデバイスから正常に転送されました。
STATUS_Xxx
内部操作の結果、NTSTATUS エラーが発生しました。

注釈

システム提供のPPARALLEL_READ コールバックへのポインターを取得するために、カーネル モード ドライバーは、PARCLASS_INFORMATION構造体を返すIOCTL_INTERNAL_PARCLASS_CONNECT要求を使用します。 PARCLASS_INFORMATION構造体の ParallelRead メンバーは、このコールバックへのポインターです。

クライアントは、並列ポートにロックがある場合にのみ、このルーチンを使用できます。 クライアントは、 IOCTL_INTERNAL_LOCK_PORT 要求を使用して、並列ポートのロックを取得します。

PPARALLEL_READ コールバックは、呼び出し元の IRQL にある呼び出し元のスレッドで実行されます。

要件

要件
対象プラットフォーム デスクトップ
Header parallel.h (Parallel.h を含む)

こちらもご覧ください

PPARALLEL_WRITE

IOCTL_INTERNAL_LOCK_PORT