home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / WIN_NT / KMGLOS.ZIP / TOC3.TTY < prev    next >
Encoding:
Text File  |  1993-01-29  |  5.4 KB  |  133 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.              Contents
  12.              Contents
  13.              Chapter 3 - NT Objects and Support for Drivers
  14.              Chapter 3 - NT Objects and Support for Drivers
  15.  
  16.  
  17.              3.1    NT Executive Components and NT Drivers............3-1
  18.  
  19.              3.2    Device Objects and Device Extensions..............3-7
  20.                3.2.1    Defining Device Extensions....................3-9
  21.                3.2.2    Creating a Device Object and Device Extension3-10
  22.                3.2.3    Initializing Driver-specific Device Objects and
  23.                  Device Extensions...................................3-11
  24.                3.2.4    Setting Up Access to User Buffers............3-13
  25.                  3.2.4.1    Using Buffered I/O.......................3-13
  26.                  3.2.4.2    Using Direct I/O.........................3-15
  27.                  3.2.4.3    Using Neither Direct Nor Buffered I/O....3-18
  28.  
  29.              3.3     Adapter Objects and DMA.........................3-20
  30.                3.3.1    Map Registers................................3-21
  31.                3.3.2    Getting an NT Adapter Object.................3-23
  32.                3.3.3    Splitting Transfer Requests..................3-26
  33.                3.3.4    Using System DMA.............................3-28
  34.                  3.3.4.1    Packet-based System DMA..................3-28
  35.                  3.3.4.2    Common-buffer System DMA.................3-34
  36.                3.3.5    Using Busmaster DMA..........................3-38
  37.                  3.3.5.1    Packet-based DMA.........................3-39
  38.                  3.3.5.2    Common-buffer DMA........................3-46
  39.  
  40.              3.4    Controller Objects...............................3-48
  41.                3.4.1    Creating a Controller Object with a Controller
  42.                  Extension...........................................3-49
  43.                3.4.2    Allocating the Controller for I/O Operations.3-51
  44.  
  45.              3.5    Interrupt Objects................................3-54
  46.                3.5.1    Getting a System-assigned Interrupt Vector, DIRQL,
  47.                  and Processor Mask..................................3-54
  48.                3.5.2    Registering an ISR...........................3-56
  49.  
  50.              3.6    DPC Objects......................................3-59
  51.                3.6.1    Registering and Queueing a DpcForIsr Routine.3-59
  52.                3.6.2    Registering and Queueing a CustomDpc Routine.3-62
  53.  
  54.              3.7    Timer Objects with Associated DPCs...............3-64
  55.                3.7.1    Registering and Enabling an IoTimer Routine..3-65
  56.                3.7.2    Registering and Queueing a CustomTimerDpc Routine     
  57.                  3-67
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.         3.8    Device Queue Objects and Interlocked Queues......3-70
  78.           3.8.1    Setting up a Device Queue Object and Queueing IRPs    
  79.             3-71
  80.           3.8.2    Setting up an Interlocked Queue and Queueing IRPs     
  81.             3-73
  82.  
  83.         3.9    Kernel Dispatcher Objects for Drivers............3-76
  84.           3.9.1    Timer Objects................................3-78
  85.           3.9.2    Event Objects................................3-80
  86.           3.9.3    Semaphore Objects............................3-83
  87.           3.9.4    Mutex Objects................................3-86
  88.  
  89.  
  90.         Figures - Chapter 3
  91.         Figures - Chapter 3
  92.  
  93.           Figure 3.1    Executive Component Support for Drivers..3-2
  94.           Figure 3.2    Device Object............................3-8
  95.           Figure 3.3    Buffered I/O for User Buffers...........3-14
  96.           Figure 3.4    Direct I/O on User Buffers..............3-16
  97.           Figure 3.5    Physical, Logical, and Virtual Address Mappings  
  98.             3-22
  99.           Figure 3.6    Getting an Adapter Object...............3-24
  100.           Figure 3.7    Allocating the System DMA Controller....3-30
  101.           Figure 3.8    Programming the System DMA Controller...3-32
  102.           Figure 3.9    Allocating a Common Buffer for System DMA3-34
  103.           Figure 3.10    Allocating an Adapter Object for Busmaster DMA  
  104.             3-40
  105.           Figure 3.11    Setting Up a Logical Range for DMA.....3-44
  106.           Figure 3.12    Allocating a Common Buffer for Busmaster DMA    
  107.             3-46
  108.           Figure 3.13    Controller Object......................3-50
  109.           Figure 3.14   Allocating a Controller Object for I/O..3-52
  110.           Figure 3.15    Getting a System Vector and IRQL.......3-55
  111.           Figure 3.16    Setting Up Interrupt Objects...........3-56
  112.           Figure 3.17    Using a DPC Object for a DpcForIsr Routine3-60
  113.           Figure 3.18    Using a DPC Object for a CustomDpc Routine3-62
  114.           Figure 3.19    Using a Timer Object for an IoTimer Routine     
  115.             3-66
  116.           Figure 3.20    Using Timer and DPC Objects for a
  117.             CustomTimerDpc Routine..............................3-68
  118.           Figure 3.21    Using a Device Queue Object............3-72
  119.           Figure 3.22    Using an Interlocked Queue.............3-74
  120.           Figure 3.23    Waiting on a Timer Object..............3-78
  121.           Figure 3.24    Waiting on an Event Object.............3-80
  122.           Figure 3.25    Waiting on a Semaphore Object..........3-84
  123.           Figure 3.26    Waiting on a Mutex Object..............3-88
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.