hwbnet
驱动牛犊
驱动牛犊
  • 注册日期2005-01-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:2271回复:0

请问:DRIVER_OBJECT结构中成员的含义。附DRIVER_OBJECT定义。

楼主#
更多 发布于:2007-09-28 16:24
DRIVER_OBJECT STRUCT    ; sizeof= 0A8h
    _Type            SWORD            ?    ; 0000h  (IO_TYPE_DRIVER = 4)  (original field name Type)
    _Size            SWORD            ?    ; 0004h  (original name Size)

    ; The following links all of the devices created by a single driver
    ; together on a list, and the Flags word provides an extensible flag
    ; location for driver objects.

    DeviceObject        PVOID        ?    ; 0004h PTR DEVICE_OBJECT
    Flags                DWORD        ?    ; 0008h

    ; The following section describes where the driver is loaded.  The count
    ; field is used to count the number of times the driver has had its
    ; registered reinitialization routine invoked.

    DriverStart            PVOID        ?    ; 000Ch
    DriverSize            DWORD        ?    ; 0010h
    DriverSection        PVOID        ?    ; 0014h
    DriverExtension        PVOID        ?    ; 0018h PTR DRIVER_EXTENSION

    ; The driver name field is used by the error log thread
    ; determine the name of the driver that an I/O request is/was bound.

    DriverName            UNICODE_STRING <>    ; 001Ch
    
    ; The following section is for registry support.  Thise is a pointer
    ; to the path to the hardware information in the registry

    HardwareDatabase    PVOID        ?    ; 0024h PTR UNICODE_STRING

    ; The following section contains the optional pointer to an array of
    ; alternate entry points to a driver for "fast I/O" support.  Fast I/O
    ; is performed by invoking the driver routine directly with separate
    ; parameters, rather than using the standard IRP call mechanism.  Note
    ; that these functions may only be used for synchronous I/O, and when
    ; the file is cached.

    FastIoDispatch        PVOID        ?    ; 0028h PTR FAST_IO_DISPATCH

    ; The following section describes the entry points to this particular
    ; driver.  Note that the major function dispatch table must be the last
    ; field in the object so that it remains extensible.

    DriverInit            PVOID        ?    ; 002Ch
    DriverStartIo        PVOID        ?    ; 0030h
    DriverUnload        PVOID        ?    ; 0034h
    MajorFunction        PVOID        (IRP_MJ_MAXIMUM_FUNCTION + 1) dup(?)    ; 0038h

DRIVER_OBJECT ENDS

胡文斌
游客

返回顶部