天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁 > 論文百科 > 英文數(shù)據(jù)庫 >

深入解析Windows操作系統(tǒng),卷2(英文版·第6版)

發(fā)布時間:2016-07-31 15:53

  本文關(guān)鍵詞:深入解析Windows操作系統(tǒng),卷2,由筆耕文化傳播整理發(fā)布。


> windows > 深入解析Windows操作系統(tǒng),卷2(英文版·第6版) Kernel-Mode Driver Framework (KMDF) 2013-01-07 08:31:05         我要投稿   

本文所屬圖書 > 深入解析Windows操作系統(tǒng),卷2(英文版·第6版)

本書是操作系統(tǒng)內(nèi)核專家Russinovich 等人的Windows 操作系統(tǒng)原理的最新版著作,針對Windows 7和Windows Server 2008 R2 進(jìn)行了全面的更新,,主要講述Windows 的底層關(guān)鍵機(jī)制、Windows 的核心組件(包括進(jìn)...  立即去當(dāng)當(dāng)網(wǎng)訂購

We’ve already discussed some details about the Windows Driver Foundation (WDF) in Chapter 2, “System Architecture,” in Part 1. In this section, we’ll take a deeper look at the components and func-tionality provided by the kernel-mode part of the framework, KMDF. Note that this section will only briefly touch on some of the core architecture of KMDF. For a much more complete overview on the subject, please refer to

Structure and Operation of a KMDF DriverFirst, let’s take a look at which kinds of drivers or devices are supported by KMDF. In general, any WDM-conformant driver should be supported by KMDF, as long as it performs standard I/O process-ing and IRP manipulation. KMDF is not suitable for drivers that don’t use the Windows kernel API directly but instead perform library calls into existing port and class drivers. These types of drivers cannot use KMDF because they only provide callbacks for the actual WDM drivers that do the I/O processing. Additionally, if a driver provides its own dispatch functions instead of relying on a port or class driver, IEEE 1394 and ISA, PCI, PCMCIA, and SD Client (for Secure Digital storage devices) drivers can also make use of KMDF.

Although KMDF provides an abstraction on top of WDM, the basic driver structure shown earlier also generally applies to KMDF drivers. At their core, KMDF drivers must have the following functions:

  ■ An initialization routine  Just like any other driver, a KMDF driver has a DriverEntry  function that initializes the driver. KMDF drivers will initiate the framework at this point and perform any configuration and initialization steps that are part of the driver or part of describing the driver to the framework. For non–Plug and Play drivers, this is where the first device object should be created.

  ■ An add-device routine   KMDF driver operation is based on events and callbacks (described shortly), and the  EvtDriverDeviceAdd  callback is the single most important one for PnP devices because it receives notifications when the PnP manager in the kernel enumerates one of the driver’s devices.

  ■ One or more EvtIo*  routines  Just like a WDM driver’s dispatch routines, these callback routines handle specific types of I/O requests from a particular device queue. A driver typically creates one or more queues in which KMDF places I/O requests for the driver’s devices. These queues can be configured by request type and dispatching type.

The simplest KMDF driver might need to have only an initialization and add-device routine because the framework will provide the default, generic functionality that’s required for most types of I/O processing, including power and Plug and Play events. In the KMDF model, events  refer to run-time states to which a driver can respond or during which a driver can participate. These events are not related to the synchronization primitives (synchronization is discussed in Chapter 3 in Part 1), but are internal to the framework.

For events that are critical to a driver’s operation, or which need specialized processing, the driver registers a given callback routine to handle this event. In other cases, a driver can allow KMDF to perform a default, generic action instead. For example, during an eject event (EvtDeviceEject), a driver can choose to support ejection and supply a callback or to fall back to the default KMDF code that will tell the user that the device is not ejectable. Not all events have a default behavior, however, and callbacks must be provided by the driver. One notable example is the  EvtDriverDeviceAdd  event that is at the core of any Plug and Play driver.

EXPERIMENT: Displaying KMDF Drivers

The Wdfkd.dll extension that ships with the Debugging Tools for Windows package provides many commands that can be used to debug and analyze KMDF drivers and devices (instead of using the built-in WDM-style debugging extension that may not offer the same kind of WDF-specific information). You can display installed KMDF drivers with the  !wdfkd.wdfldr  debugger command. In the following example, the output from a typical Windows computer is shown, displaying the built-in drivers that are installed.
lkd> !wdfkd.wdfldr 
 LoadedModuleList      0xfffff880010682d8 
----------------------------------
LIBRARY_MODULE  fffffa8002776120
  Version       v1.9 build(7600)
  Service       \Registry\Machine\System\CurrentControlSet\Services\Wdf01000 
  ImageName     Wdf01000.sys 
  ImageAddress  0xfffff88000c00000
  ImageSize     0xa4000 
  Associated Clients: 16
  ImageName  Version  WdfGlobals  FxGlobals  ImageAddress
  ImageSize
peauth.sys  v1.7(6001)  0xfffffa8004754210   0xfffffa80047540c0   0xfffff880074cc000 
  0x000a6000
scfilter.sys  v1.5(6000)  0xfffffa8002ef34e0   0xfffffa8002ef3390   0xfffff880040b3000 
  0x0000e000
WinUSB.sys  v1.9(7600)  0xfffffa8002eefd20   0xfffffa8002eefbd0   0xfffff88004000000 
  0x00011000
monitor.sys   v1.9(7600)  0xfffffa8004854a10   0xfffffa80048548c0   0xfffff8800412a000 
  0x0000e000
vmswitch.sys  v1.5(6000)  0xfffffa8002de5d60   0xfffffa8002de5c10   0xfffff88003e9b000 
  0x00068000
vmbus.sys  v1.5(6000)  0xfffffa8002d7fcf0   0xfffffa8002d7fba0   0xfffff88003e5f000 
  0x0003c000
Vid.sys  v1.5(6000)  0xfffffa8002ddacf0   0xfffffa8002ddaba0   0xfffff88002a00000 
  0x00033000
umbus.sys  v1.9(7600)  0xfffffa8002e57e70   0xfffffa8002e57d20   0xfffff880035db000 
  0x00012000
storvsp.sys   v1.5(6000)  0xfffffa8002e48b10   0xfffffa8002e489c0   0xfffff88003575000 
  0x00023000
CompositeBus.sys   v1.9(7600)  0xfffffa8002d79160   0xfffffa8002d79010   0xfffff88002936000 
  0x00010000
HDAudBus.sys  v1.7(6001)  0xfffffa8002e357f0   0xfffffa8002e356a0   0xfffff880037a9000 
  0x00024000
intelppm.sys  v1.9(7600)  0xfffffa8002c518f0   0xfffffa8002c517a0   0xfffff880027e7000 
  0x00016000
cdrom.sys  v1.9(7600)  0xfffffa80028bf8f0   0xfffffa80028bf7a0   0xfffff880011c4000 
  0x0002a000
vmstorfl.sys  v1.5(6000)  0xfffffa8002b2cdd0   0xfffffa8002b2cc80   0xfffff8800144a000 
  0x00010000
vdrvroot.sys  v1.9(7600)  0xfffffa80027887c0   0xfffffa8002788670   0xfffff8800139c000 
  0x0000d000
msisadrv.sys  v1.9(7600)  0xfffffa80029c5430   0xfffffa80029c52e0   0xfffff8800135f000 
  0x0000a000
----------------------------------
Total:  1  library  loaded

點(diǎn)擊復(fù)制鏈接 與好友分享!回本站首頁 您對本文章有什么意見或著疑問嗎?請到論壇討論您的關(guān)注和建議是我們前行的參考和動力   上一篇:Driver Verifier 下一篇:超越想象——Windows 8應(yīng)用設(shè)計與開發(fā) (全彩) 相關(guān)文章

Device Drivers

Driver Objects and Device Objects

Driver Verifier

圖文推薦


  本文關(guān)鍵詞:深入解析Windows操作系統(tǒng),卷2,由筆耕文化傳播整理發(fā)布。



本文編號:79515

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/wenshubaike/mishujinen/79515.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶0cb26***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com
久久精品伊人一区二区| 黑鬼糟蹋少妇资源在线观看| 成人精品国产亚洲av久久| 91人妻人澡人人爽人人精品| 日韩在线视频精品视频| 成人精品网一区二区三区| 中文字幕中文字幕在线十八区 | 日本在线高清精品人妻| 中日韩美一级特黄大片| 香蕉久久夜色精品国产尤物 | 午夜福利92在线观看| 中文字幕亚洲精品在线播放| 国产精品成人一区二区在线| 欧美亚洲三级视频在线观看| 成年人黄片大全在线观看| 国产精品久久精品毛片| 欧美不卡午夜中文字幕| 日韩在线中文字幕不卡| 中文字幕免费观看亚洲视频| 久热这里只有精品九九| 老熟妇乱视频一区二区| 成人国产一区二区三区精品麻豆 | 国产精品久久香蕉国产线| 国产精品日本女优在线观看| 中文字日产幕码三区国产| 我想看亚洲一级黄色录像| 国产在线一区二区三区不卡| 69久久精品亚洲一区二区| 国产麻豆成人精品区在线观看| 熟女乱一区二区三区四区| 二区久久久国产av色| 国产精品午夜福利在线观看| 中文字幕日韩欧美亚洲午夜| 成人午夜免费观看视频| 国产又粗又猛又大爽又黄同志| 日韩一区二区三区免费av| 欧美熟妇一区二区在线| 99久久精品午夜一区二区| 精品国产成人av一区二区三区| 亚洲国产91精品视频| 亚洲精品欧美精品一区三区|