• <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 小默 閱讀(277) 評論(0)  編輯 收藏 引用 所屬分類: Windows

            導航

            統(tǒng)計

            留言簿(13)

            隨筆分類(287)

            隨筆檔案(289)

            漏洞

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            一本色道久久HEZYO无码| 欧洲成人午夜精品无码区久久| 26uuu久久五月天| 久久精品亚洲精品国产欧美| 国产成人综合久久精品红| 久久亚洲欧美国产精品| 精品综合久久久久久88小说 | 99久久99久久精品国产片果冻 | 色综合久久精品中文字幕首页| 久久e热在这里只有国产中文精品99 | 欧美激情精品久久久久久久九九九| 久久中文字幕人妻丝袜| 狠狠色婷婷综合天天久久丁香| 久久综合九色综合久99| 九九99精品久久久久久| 久久中文字幕人妻熟av女| 色综合色天天久久婷婷基地 | 久久香蕉一级毛片| 亚洲午夜久久久影院| 亚洲一区中文字幕久久| 久久精品国产网红主播| 久久福利资源国产精品999| 国産精品久久久久久久| 9久久9久久精品| 久久精品国产亚洲精品2020| 一个色综合久久| 久久久免费观成人影院| 国产99久久九九精品无码| 国内精品久久久久影院日本| 久久香蕉超碰97国产精品| 伊人久久综合精品无码AV专区| 一本大道久久香蕉成人网| 久久se精品一区二区影院| 国产精品无码久久久久| 久久99热这里只有精品国产| 久久精品亚洲欧美日韩久久| 青青青国产精品国产精品久久久久 | 久久久久亚洲AV成人网人人网站| 亚洲成av人片不卡无码久久| 一极黄色视频久久网站| 99久久这里只精品国产免费|