• <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)

            漏洞

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            亚洲精品乱码久久久久久自慰| 久久人妻AV中文字幕| 国产精品岛国久久久久| 国产99久久九九精品无码| 一极黄色视频久久网站| 奇米影视7777久久精品| 国产精自产拍久久久久久蜜| 久久精品国产免费观看三人同眠| 久久人人爽人人爽人人片AV麻烦| 久久精品麻豆日日躁夜夜躁| 久久亚洲中文字幕精品一区四| 人妻久久久一区二区三区| 久久精品一区二区三区中文字幕| 久久久久亚洲av成人网人人软件| 91久久精品国产成人久久| 综合人妻久久一区二区精品| 久久伊人精品青青草原日本| 久久综合九色综合精品| 久久AV无码精品人妻糸列| 久久久久久毛片免费看| 久久成人精品视频| 国产午夜免费高清久久影院| 色综合合久久天天给综看| 91精品国产高清久久久久久91| 一本一本久久a久久综合精品蜜桃| 国产精品亚洲美女久久久| 国产精品久久久久9999| 无码精品久久久天天影视| 国产精品亚洲综合久久| 人妻精品久久久久中文字幕| 国产精品一区二区久久精品无码| 久久99国产精品一区二区| 亚洲人成网亚洲欧洲无码久久 | 色噜噜狠狠先锋影音久久| 久久久久久国产精品免费无码| 久久99热这里只频精品6| 婷婷久久综合九色综合九七| 色婷婷久久综合中文久久一本 | 亚洲精品乱码久久久久久| 午夜人妻久久久久久久久| 欧美牲交A欧牲交aⅴ久久|