로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

DEVELOPING WINDOWS NT DEVICE DRIVERS

   
지은이 Edward N. Dekker   |   출판사 Addison-Wesley Professional  |   발행일 1999년 03월 30일   |   언어 : English
 
판매가 98,000원71,500원 27%
마일리지 0% 0원
발행일 1999-03-30 | 중량: 1.99 kg | 사이즈: 19.5*24.4*5.3 cm
ISBN 0201695901 | 9780201695908
기타정보 원서 | 1226쪽 | $ 69.99
예상입고일
배송비 무료배송
    정가, 판매가는 항공 운임료 포함
프로그래밍
종합지수 1p 323 위
   
도서재고
주의사항 더이상 출간되지 않습니다.
 

이 책은 프로그래머에게 윈도우즈 NT 4.0에 대한 디바이스 드라이버를 만들기 위한 깊이있는 가이드 역할을 해준다. 두명의 숙련된 드라이버 개발자인 Edward N. Dekker과 Joseph M. Newcomer는 이 책에서 복잡하고 어렵게만 느껴지는 드라이버 개발작업을 명확하고 풀어나가기 쉽도록 여러가지 테크닉과 도구, 그리고 방법과 빠지기 쉬운 함정들을 상세하게 다루어 주고 있다.

이 책은 윈도우즈 NT 디바이스 드라이버를 개발하고자 하는 사람이라면 누구라도 필요한 책이고 특히 마이크로소프트가 특별하게 지원하지 않는 비표준 디바이스를 위한 드라이버상에서 작업하는 사람들을 위한 책이다. 윈도우즈 NT는 어플리케이션 프로그램으로 하여금 직접 하드웨어를 조작할 수 있도록 허용하지 않기 때문에, 사용자 커널 모드의 디바이스 드라이버가 이들 비표준 장치를 위해 생성되어야만 한다. 그리고 디바이스 드라이버를 개발할때 섣불리 알고 있는 지식이 더 위험하다는 것을 경험에서 알고 있는 저자는 각각의 관련된 주제를 깊이있게 설명하기 위하여 주의를 기울이고 있다.
1. Driver Overview
Historical Overview
NT Architecture Overview
The Priority System
NT System Architecture
User vs. Kernel mode
The Hardware Abstraction Layer (HAL)
The BIOS and ARC
The Kernel
The Executive Services
Getting From Here To There
Overview of Device Drivers
There's Lots More
Driver Writing: Getting Started
Using C++
Planning a Device Driver
Further Reading

2. I/O: User Level Overview
User Level I/O Basics
Synchronous vs. Asynchronous I/O
User Level APIs
Other I/O operations
Further Reading


3. Planning a Device Driver
Planning the User Level Interface
Windows NT is not a Real-time system
Understanding the Application(s)
Understanding the hardware
How does it work, really?
ReadFile, WriteFile, DeviceIoControl and CancelIo
Address mapping
Paged and Non-Paged Memory
Buffered and Direct Access
Handling I/O Requests
Devices and Device Objects
Devices and Controllers
Handling Interrupts
The Deferred Processing Routine
Synchronization and Serialization
Driver Threads
Polled Devices and Interrupt Frequency
Full-Duplex Devices
Device Enumeration
Power Management
Unloading Drivers
The Registry
Event Logging and Journalling
International Drivers
Driver Coding
Driver Testing
Further Reading


4. I/O Hardware: Internal Busses
Device Registers
Memory Mapped Device Registers
Shared Memory
Bus Structures
ISA Bus
The MicroChannel (MCA) Bus
The EISA Bus
The PCI Bus
PCI Bridges
Planning a Device Driver
Further Reading


5. Device Driver Basics
A Taxonomy of Drivers
Driver Limitations
The Registry
Always Preemptible, Always Interruptible
Multiprocessor Considerations
I/O Request Packets (IRPs)
Layered Drivers and IRPs
Asynchronous I/O
Object-Oriented Structures
Further Reading


6. Overview of Kernel Memory: Caching, Paging and Pipelining
The Virtual Address Space
The Physical Memory System
More sophisticated caching
Cache management on Intel hardware
Pipelining: a form of caching
Caching Page Table Information
Cache Line Alignment
Memory Management in NT
LRU, Working Set, and Thrashing
Non-paged memory
Memory Management for Device Drivers: Overview
The File Cache
Further Reading


7. Driver Data Structures
Loading and Starting a Driver
Driver Objects
Driver Loading
Driver Load Order
Adding a Driver
Driver Object Structure
Device Objects
Device Object Structure
Adapter and Controller Objects
Interrupt Objects
Timer Objects
DPC Objects
Device Queue Objects
File Objects
Event Semaphore and Mutex Objects
I/O Request Packets (IRPs)
IRP_MJ_CREATE
IRP_MJ_CLEANUP
IRP_MJ_CLOSE
IRP_MJ_READ
IRP_MJ_WRITE
IRP_MJ_FLUSH_BUFFERS
IRP_MJ_SHUTDOWN
IRP_MJ_DEVICE_CONTROL
IRP_MJ_INTERNAL_DEVICE_CONTROL
Summary


8. Device Driver Structure
The Hello World Driver
Doing debug printout
The hello.h file
The hello.c file
The Test Program
Building the Driver
The Checked and Free Build environments
The BUILD command
Output from the BUILD process
Registry entries for Hello World
REGEDIT/REGEDT32
REGINI
Running the Hello World test program and driver
Starting the Driver
Running the Test Program
The I/O Explorer
Further Reading


9. Debugging a Device Driver
Debugging Tools Overview
Application Level: The IDE Debugger
Application Level: Bounds Checker for Windows
Kernel: WinDbg
Kernel: Soft-ICE
Kernel: kd
Retail and Checked Builds
Using the Debugging Tools
Physical Configuration
Using AutoLogin
Installing Your Driver
Modifying the BOOT.INI file
Configuring WinDbg
Starting a Debug Session
Loading the Driver
It crashed. Now what?
Restarting after an error
Reading a Crash Dump
Unhandled Exceptions
WinDbg Reference
If in Doubt - Get hardware debug assistance
Use a PCI Bus Monitor
Use A Logic Analyzer
Use an Oscilloscope
If still in doubt Rent an ICE-it's expensive but so are you
Product List


10 Approaching Reality: Moving Data
Moving Data
IRP_MJ_DEVICE_CONTROL and IRP_MJ_INTERNAL_DEVICE_CONTROL
Buffers for Device Control
Completion of the request
Example: Buffered IOCTL
Declarations and Interface
Sample usage: application level
IRP_MJ_READ and IRP_MJ_WRITE
Buffers for Read and Write
Completion of the request
Example: buffered IRP_MJ_READ and IRP_MJ_WRITE completed in Dispatch
Example: Direct I/O IRP_MJ_READ and IRP_MJ_WRITE completed in Dispatch


11. Approaching Reality: Synchronization
Synchronization
Spin Locks
KeInitializeSpinLock
KeAcquireSpinLock
KeReleaseSpinLock
KeAcquireSpinLockAtDpcLevel
KeReleaseSpinLockFromDpcLevel
Mutexes
ExAcquireFastMutex
ExTryToAcquireFastMutex
ExReleaseFastMutex
ExAcquireFastMutexUnsafe
ExReleaseFastMutexUnsafe
KeReleaseMutex
KeReadStateMutex
KeWaitForMutexObject
Semaphores
KeInitializeSemaphore
KeReleaseSemaphore
KeReadStateSemaphore
The Executive Resource
ExInitializeResourceLite
ExAcquireResourceExclusiveLite
ExTryToAcquireResourceExclusiveLite
ExAcquireResourceSharedLite
ExAcquireSharedStarveExclusive
ExAcquireSharedWaitForExclusive
ExReleaseResourceForThreadLite
ExReinitializeResourceLite
ExIsResourceAcquiredExclusiveLite
ExIsResourceAcquiredSharedLite
ExGetExclusiveWaiterCount
ExGetSharedWaiterCount
ExConvertExclusiveToSharedLite
ExGetCurrentResourceThread
ExReleaseResourceForThreadLite
ExDeleteResourceLite
Wait Routines
KeWaitForSingleObject
KeWaitForMultipleObjects
SyncCritSect Routine
Device Consistency: KeSynchronizeExecution
The Cancel Spin Lock


12. Achieving Reality: Memory Management
Memory Management within the driver
Mapping Adapter memory and I/O space
Zone Buffers
Lookaside lists
Memory Allocation/Management Operations


13. Achieving Reality: Touching the Hardware
Touching the Hardware
Accessing Ports
Mapping Ports
Mapping Device Memory
The Joy Of Hardware


14. Achieving Reality: Interrupts and the Driver
Role of the low-level driver
Interrupt Processing
What is an Interrupt?
Interrupt Levels
ISR Synchronization: the ISR Spin Lock
ISR levels and device priority
Overview of an Interrupt Service Routine
The Interrupt Service Routine Prototype
Interrupt Service Routine Requirements
Registering the Interrupt Service Routine
Processing the Interrupt
The Deferred Procedure Call Overview
DPC for ISR vs. Custom DPC
Multiple DPC routines
DpcForIsr
Custom DPC routines
Writing an Interrupt Service Routine
ISR Prototype
ISRs and Shared Interrupts
The Deferred Procedure Call
ISRs and the Unload routine
SyncCritSect Routine
Resource Allocation..............

준비 중입니다.
등록된 서평이 없습니다.
인공지능 프로그래밍...
임준식
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
 
전체평균(0)
회원평점   회원서평수 0
Addison-Wesley Professional 출판사의 신간
Practical Augmented Reality: A Guide to the Technologies, Applications, and Human Factors for AR and VR (Usability)
Steve Aukstakalnis 저
68,300원
(22%↓+1%)
 
C++ Templates: The Complete Guide 2nd edition
David Vandevoorde, Nicolai M. Josuttis 저
88,700원
(24%↓+1%)
 
The Python 3 Standard Library by Example
Doug Hellmann 저
66,500원
(24%↓+1%)
 
Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#
Jeremy Gibson Bond 저
93,400원
(20%↓+1%)
 
The Great Scrummaster: #Scrummasterway
Zuzana Sochova 저
35,000원
(20%↓+1%)
 
이메일주소수집거부