タグ

ドライバに関するhat-tunのブックマーク (5)

  • 研究者を目指して...:I/Oリクエストパケット - livedoor Blog(ブログ)

    Windowsでは、I/Oリクエストパケット(IRP)と呼ばれる構造体を使ってカーネルモードデバイスドライバと通信する。I/Oリクエストの処理には二つの構造体が必要不可欠である。ひとつは、I/Oリクエストパケット自体で、もうひとつはIO_STACK_LOCATION構造体である。 IRP IRPの構造を下図に示す。 MdlAddress(PMDL)は、このリクエストに対応するユーザモードバッファを記述するメモリデスクリプタリスト(MDL)のアドレスである。I/Oマネージャは、最上位のデバイスオブジェクトのフラグにDO_DIRECT_IOが含まれていたら、IRP_MJ_READ、IRP_MJ_WRITEリクエストのためにこのMDLを作成する。また、コントロールコードにMETHOD_IN_DIRECT、METHOD_OUT_DIRECTが含まれていたら、IRP_MJ_DEVICE_CONTRO

  • コミュニティー(デバドラ講座)

    誰でもわかるデバイスドライバ講座 サイエンスパークでは、新入社員の研修として、デバイス ドライバ開発に携わるための 学習を行っております。この研修では、デバイス ドライバの仕組みを理解した上で プログラミングを行う目的のほかに、初心者でもデバイス ドライバ開発ができるための 資料を作成する目的もかねております。 今回、その研修にて作成した資料を元に「誰でもわかるデバイス ドライバ講座」 と題しまして、その内容を順次公開してまいります。 但し、デバイスドライバ開発の10年選手、20年選手が作成したものでは無い為に、 ビギナーには分かりやすい反面、経験者には不適切と思われる部分もあるかと存じま す。 順次にレベルアップを計りますので、御了承下さい。 目次 レポート1:  PCの概要 レポート2:  ドライバのインストールとアンインストール レポート3:  ドライバの種類 レポート4:  ドライ

  • レポート25:IRPの構造

    IRPの構造 IRP(I/O Request Packet)はアプリケーションからI/O要求が発生した際に、I/Oマネージャが作成する構造体です。IRPは適当なドライバのディスパッチルーチンを呼び出す時に、引数として渡されます。IRP構造体は図1のようにヘッダとスタックロケーションの二つの部分が存在します。スタックロケーションの数は、I/O要求に関わるドライバの階層と関係しています。例えば、上位、中間、物理の3つのドライバを介して一つのI/O要求を処理する場合、3つのスタックロケーションが存在します。 図1 IRP構造体 IRPはオブジェクトではなく、データのパケットで、その構造体は非常に複雑な形をしています。IRPは非ページプールメモリに作成されます。IRPのヘッダの値、大きさはドライバの階層に関係なく固定しています。次にIRPの簡略した構造体と、よく使うフィールドについて示します。 t

  • レポート26:データバッファのアクセス方法

  • Handling IRPs - Windows drivers

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    Handling IRPs - Windows drivers
  • 1