·Î±×ÀÎ ¤Ó ȸ¿ø°¡ÀÔ ¤Ó Àå¹Ù±¸´Ï ¤Ó °í°´¼¾ÅÍ ¤Ó ¸¶ÀÌÆäÀÌÁö ¤Ó ȸ»ç¼Ò°³
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..............

Áغñ ÁßÀÔ´Ï´Ù.
µî·ÏµÈ ¼­ÆòÀÌ ¾ø½À´Ï´Ù.
ÆÐÅÏ ÀνÄ...
¿ÀÀϼ®
¼±ÅÃµÈ »óǰÀ» ÂòÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ¼±ÅÃµÈ »óǰÀ» ¹Ù·Î±¸¸Å ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
½ÇÀü! ÇÏÀ̺긮µå ¾Û °³¹ßÀ» À§ÇÑ Æù°¸ ÇÁ·Î±×·¡¹Ö...
Á¤¿ìÁø, À±µ¿¿ø
¼±ÅÃµÈ »óǰÀ» ÂòÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ¼±ÅÃµÈ »óǰÀ» ¹Ù·Î±¸¸Å ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
Angular 2 ÇÁ·Î±×·¡¹Ö...
Á¤Áø¿í
¼±ÅÃµÈ »óǰÀ» ÂòÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ¼±ÅÃµÈ »óǰÀ» ¹Ù·Î±¸¸Å ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
 
ÃÊ Áß °í
ÀüüÆò±Õ(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%)
 
À̸ÞÀÏÁÖ¼Ò¼öÁý°ÅºÎ