류짱:Beyond MySelf

장치 드라이버란? 본문

Microsoft/Windows Platform

장치 드라이버란?

リュちゃん 2010. 11. 29. 16:36

IRPs Stack size를 좀더 깊이 있게 알아 보기 위해 우선 device driver가 무엇이고 어떻게 동작하는지 알아 보려고 합니다.

 

What Is a Device Driver?
http://technet.microsoft.com/en-us/library/cc776246(WS.10).aspx

 

What Is a Device Driver?


A device driver is a component that Windows uses to provide I/O services for and interact with an underlying device, such as a modem or network adapter. Rather than access the device directly, Windows loads device drivers and calls functions in the drivers to carry out actions on the device. The driver functions contain the device-specific code needed to carry out actions on the device. Device drivers for Windows Server 2003 are usually library files with .sys filename extensions.

Windows Server 2003 installs and configures device drivers automatically. This saves you from needing to allocate resources manually or check for conflicts in devices.

Windows Server 2003 checks for a digital signature during device driver installation and issues a message if the driver is not signed. Windows Server 2003 checks a database of known problem drivers when a computer is started or when a device driver is loaded; if a driver is located in the database of known problem drivers, that driver cannot be loaded, installed, or used on the computer.

Device Driver Dependencies and Interactions

Plug and Play

For automatic configuration of device drivers to occur, the system should have a BIOS compatible with Plug and Play. Plug and Play technology provides software and hardware support that enables the Windows operating system to detect and configure the hardware with little or no user involvement. This makes it easier to add and configure hardware on a computer running Windows Server 2003 without needing special knowledge about hardware configurations.

Power Management

Windows Server 2003 offers enhanced power-management features for desktop and mobile computers. The operating system supports the Advanced Configuration and Power Interface (ACPI) specification, which provides reliable power management and system configuration features. Devices and drivers designed in compliance with the ACPI specification work with the operating system to respond to or request changes in the system power state.

The following illustration shows a system-wide overview of how device drivers interact with other components of a system running Windows Server 2003.

Device Drivers
The following table describes the components used for installing and managing devices and drivers.

Device Driver Components

 

Component

Description

Hardware Abstraction Layer (HAL)

A component based on the Windows NT operating system that provides platform-specific support for the Windows NT kernel, I/O Manager, kernel-mode debuggers, and the lowest-level device drivers. The HAL exports routines that abstract platform-specific hardware details about caches, I/O buses, interrupts, and so forth. The HAL provides an interface between the platform’s hardware and the system software. For example, the HAL implements a routine to map each device driver's bus-relative device interrupt vector to a system-assigned vector with a corresponding platform-specific hardware priority (DIRQL). The HAL also provides several routines that provide DMA transfer support.

Device Drivers

Files used to communicate between devices and Windows Server 2003. Drivers are structured under the Windows Device Model (WDM). The three WDM driver types are bus driver, function driver, and filter driver.

I/O Manager

Subsystem that controls and interacts with all devices on the system and provides routines that drivers can call to have I/O Manager insert IRPs into the associated device queue.

Plug and Play Manager

Component responsible for determining the hardware resources requested by each device (for example, input/output ports [I/O], interrupt requests [IRQs], direct memory access [DMA] channels, and memory locations) and assigning hardware resources appropriately. Plug and Play Manager reconfigures resource assignments when necessary, such as when a new device added to the system requires resources already in use.

Power Manager

Component responsible for managing power usage for the system. Power Manager administers the system-wide power policy and tracks the path of power IRPs through the system.

Device Manager

Interface displaying the computer's hardware configuration information. The Device Manager display is recreated each time the computer is started or whenever a dynamic change to the computer configuration occurs, such as addition of a new device while the system is running. Device Manager is used to enable or disable devices, troubleshoot devices, update drivers, use driver rollback, and change resources such as interrupt requests (IRQs) assigned to devices.