最終更新:2014-10-20 (月) 16:01:25 (3447d)
IRP
Top / IRP
I/O Request Packet - I/O 要求パケット
- 何らかのイベントが発生することにより生成され、デバイスオブジェクトに伝達される指示パケット
- 上位のデバイスオブジェクトが、下位のデバイスオブジェクトへIRPを伝播させていく
- Read、Write、Plug&Play?など、様々な内容のメッセージが定義されている
メモ
- デバイス ドライバーに送信される要求のほとんどは、I/O 要求パケット (IRP) にパッケージ化されます。オペレーティング システムのコンポーネントまたはドライバーが、IoCallDriver? を呼び出すことにより、ドライバーに IRP を送信します。
処理方法
IRP の処理 : すべてのドライバ作成者が知る必要のある事項
メジャーファンクションコード
- IRP_MJ_CLEANUP?
- IRP_MJ_CLOSE?
- IRP_MJ_CREATE?
- IRP_MJ_DEVICE_CONTROL?
- IRP_MJ_DIRECTORY_CONTROL?
- IRP_MJ_FILE_SYSTEM_CONTROL?
- IRP_MJ_FLUSH_BUFFERS?
- IRP_MJ_INTERNAL_DEVICE_CONTROL?
- IRP_MJ_LOCK_CONTROL?
- IRP_MJ_PNP?
- IRP_MJ_QUERY_EA?
- IRP_MJ_QUERY_INFORMATION?
- IRP_MJ_QUERY_QUOTA?
- IRP_MJ_QUERY_SECURITY?
- IRP_MJ_QUERY_VOLUME_INFORMATION?
- IRP_MJ_READ?
- IRP_MJ_SET_EA?
- IRP_MJ_SET_INFORMATION?
- IRP_MJ_SET_QUOTA?
- IRP_MJ_SET_SECURITY?
- IRP_MJ_SET_VOLUME_INFORMATION?
- IRP_MJ_SHUTDOWN?
- IRP_MJ_WRITE?
USB
- A software client normally requests data transfers via I/O Request Packets (IRPs) to a pipe and then either waits or is notified when they are completed.^ Details about IRPs are defined in an operating systemspecific manner.