• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            小默

            [zz]DispatchPnP

            DispatchPnP

            The DispatchPnP routine services IRPs containing the IRP_MJ_PNP I/O function code.

            DRIVER_DISPATCH DispatchPnP;

            NTSTATUS
              DispatchPnP(
                __in struct _DEVICE_OBJECT  *DeviceObject,
                __in struct _IRP  *Irp
                )
              {...}

            Parameters

            DeviceObject
            Caller-supplied pointer to a DEVICE_OBJECT structure. This is the device object for the target device, previously created by the driver's AddDevice routine.
            Irp
            Caller-supplied pointer to an IRP structure that describes the requested I/O operation.

            Return Value

            If the routine succeeds, it must return STATUS_SUCCESS. Otherwise, it must return one of the error status values defined in Ntstatus.h.

            Comments

            A driver's DispatchPnP routine should be named XxxDispatchPnP, where Xxx is a driver-specific prefix. The driver's DriverEntry routine must store the DispatchPnP routine's address in DriverObject->MajorFunction[IRP_MJ_PNP].

            Input parameters for all Dispatch routines are supplied in the IRP structure pointed to by Irp. Additional parameters are supplied in the driver's associated I/O stack location, which is described by the IO_STACK_LOCATION structure and can be obtained by calling IoGetCurrentIrpStackLocation.

            Generally, all Dispatch routines execute in an arbitrary thread context at IRQL = PASSIVE_LEVEL, but there are exceptions. For more information, see Dispatch Routines and IRQLs.

            For more information about DispatchPnP routines, see Writing Dispatch Routines. For more information about IRPs, see Handling IRPs.

            Example

            To define a DispatchPnP callback function that is named MyDispatchPnP, you must first provide a function declaration that Static Driver Verifier (SDV) and other verification tools require, as follows:

            DRIVER_DISPATCH MyDispatchPnP;

             

            Then, implement your callback function as follows:

            NTSTATUS
              MyDispatchPnP(
                __in struct _DEVICE_OBJECT  *DeviceObject,
                __in struct _IRP  *Irp
                )
              {
                  // Function body
              }

             

            The DRIVER_DISPATCH function type is defined in the Wdm.h header file. For more information about SDV requirements for function declarations, see Declaring Functions Using Function Role Types for WDM Drivers.

            Requirements

            IRQL: PASSIVE_LEVEL (see Comments section)

            Headers: Declared in Wdm.h. Include Wdm.h, Ntddk.h, or Ntifs.h.

            posted on 2009-12-29 11:20 小默 閱讀(273) 評論(0)  編輯 收藏 引用 所屬分類: Windows

            導航

            統計

            留言簿(13)

            隨筆分類(287)

            隨筆檔案(289)

            漏洞

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            欧美日韩中文字幕久久久不卡| 7777久久亚洲中文字幕| 国产精品热久久毛片| 久久久精品国产Sm最大网站| 欧美午夜精品久久久久久浪潮| 热99RE久久精品这里都是精品免费| 亚洲精品乱码久久久久66| 国产午夜精品久久久久免费视| 国产精品免费看久久久香蕉 | 99久久香蕉国产线看观香| 天天躁日日躁狠狠久久| 久久国产免费直播| 久久久无码人妻精品无码| 久久久无码精品午夜| 久久久噜噜噜久久中文福利| 精品久久久久一区二区三区| 久久香蕉国产线看观看精品yw| 国产免费福利体检区久久| 久久精品蜜芽亚洲国产AV| 性做久久久久久免费观看| 成人免费网站久久久| 亚洲中文字幕无码久久精品1| 久久棈精品久久久久久噜噜| 久久婷婷人人澡人人| 国产亚洲欧美成人久久片| 日本强好片久久久久久AAA| 色综合久久88色综合天天 | 亚洲综合久久综合激情久久| 欧美精品久久久久久久自慰| 久久精品桃花综合| 一级A毛片免费观看久久精品| 久久精品国产亚洲5555| 亚洲一本综合久久| 国产国产成人精品久久| 精品久久久久久国产潘金莲| 9久久9久久精品| 国产精品久久久久久影院| 久久精品成人免费看| 国产成人精品久久| 欧美久久一级内射wwwwww.| 香蕉99久久国产综合精品宅男自 |