한 걸음씩..

[Device Driver] Driver Object 자료구조 본문

프로그래밍

[Device Driver] Driver Object 자료구조

반엘 2013. 9. 4. 09:30


       Driver Object

WDM Device Driver들이 메모리 내에 상주하고 있는 근거로 사용되는 자료구조가 DriverObject 이다.

WDM Device Driver들은 각각 저마다의 DriverObject를 선언하고 있으며 이 구조체에 의해서 외부에 자신의 존재를 Export하고 있다.



       Driver Object 자료구조


typedef struct _DRIVER_OBJECT {

CSHORT type;

CSHORT Size;


  //Driver가 최근에 생성한 Device Object 포인터

PDEVICE_OBJECT DeviceObject;

ULONG Flags;


  // Driver가 메모리에 보관된 시작 위치

PVOID DriverStart 


ULONG DriverSize;

PVOID DriverSection;

PDRIVER_EXTENSION DriverExtension;

  

  //Driver 서비스 이름

UNICODE_STRING DriverName; 


  // Driver가 등록되어 있는 서비스 키

PUNICODE_STRING HardwareDatabase; 

PFAST_IO_DISPATCH FastIoDispatch;


         // DriverEntry 함수 주소

PDRIVER_INITIALIZE DriverInit;

PDRIVER_STARTIO DriverStartIo;

PDERIVER_UNLOAD DriverUnload;

// Driver가 처리하는 IRP 명령어를 위한 Dispatch Routines

PDRIVER_DISPATCH MajorFunction[ IRP_MJ_MAXIMUM_FUNCTION + 1 ];

}DRIVER_OBJECT;


출처 : 디바이스 드라이버 구조와 원리 그리고 제작 노하우