欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Windows驅動(dòng)開(kāi)發(fā)技術(shù)詳解

    首先需要安裝DDK,這里我選擇Microsoft Windows Server 2003 SP1 DDK

    Windows驅動(dòng)分成兩類(lèi),一類(lèi)是不支持即插即用的NT式驅動(dòng),一類(lèi)是支持即插即用的WDM驅動(dòng)。

    首先來(lái)看一個(gè)最簡(jiǎn)單的NT式驅動(dòng)。

    #pragma once

    #ifdef __cplusplus

    extern "C"

    {

    #endif

    #include <NTDDK.h>

    #ifdef __cplusplus

    }

    #endif

    #define PAGEDCODE code_seg("PAGE")

    #define LOCKEDCODE code_seg()

    #define INITCODE code_seg("INIT")

    #define PAGEDDATA data_seg("PAGE")

    #define LOCKEDDATA data_seg()

    #define INITDATA data_seg("INIT")

    #define arraysize(p) (sizeof(p)/sizeof((p)[0]))

    typedef struct _DEVICE_EXTENSION {

    PDEVICE_OBJECT pDevice;

    UNICODE_STRING ustrDeviceName;    //設備名稱(chēng)

    UNICODE_STRING ustrSymLinkName;    //符號鏈接名

    } DEVICE_EXTENSION, *PDEVICE_EXTENSION;

    // 驅動(dòng)函數聲明

    NTSTATUS CreateDevice (IN PDRIVER_OBJECT pDriverObject);

    VOID HelloDDKUnload (IN PDRIVER_OBJECT pDriverObject);

    NTSTATUS HelloDDKDispatchRoutine(IN PDEVICE_OBJECT pDevObj,

    IN PIRP pIrp);

    Driver.h頭文件中包含了開(kāi)發(fā)NT式驅動(dòng)所需要的NTDDK.h,此外還定義了幾個(gè)標志來(lái)指明函數和變量分配在分頁(yè)內存還是非分頁(yè)內存中。Windows驅動(dòng)程序的入口函數是DriverEntry函數,

    #include "Driver.h"

    /************************************************************************

    * 函數名稱(chēng):DriverEntry

    * 功能描述:初始化驅動(dòng)程序,定位和申請硬件資源,創(chuàng )建內核對象

    * 參數列表:

    pDriverObject:從I/O管理器中傳進(jìn)來(lái)的驅動(dòng)對象

    pRegistryPath:驅動(dòng)程序在注冊表的中的路徑

    * 返回 值:返回初始化驅動(dòng)狀態(tài)

    *************************************************************************/

    #pragma INITCODE

    extern "C" NTSTATUS DriverEntry (

    IN PDRIVER_OBJECT pDriverObject,

    IN PUNICODE_STRING pRegistryPath    )

    {

    NTSTATUS status;

    KdPrint(("Enter DriverEntry\n"));

    //注冊其他驅動(dòng)調用函數入口

    pDriverObject->DriverUnload = HelloDDKUnload;

    pDriverObject->MajorFunction[IRP_MJ_CREATE] = HelloDDKDispatchRoutine;

    pDriverObject->MajorFunction[IRP_MJ_CLOSE] = HelloDDKDispatchRoutine;

    pDriverObject->MajorFunction[IRP_MJ_WRITE] = HelloDDKDispatchRoutine;

    pDriverObject->MajorFunction[IRP_MJ_READ] = HelloDDKDispatchRoutine;

    //創(chuàng )建驅動(dòng)設備對象

    status = CreateDevice(pDriverObject);

    KdPrint(("DriverEntry end\n"));

    return status;

    }

    /************************************************************************

    * 函數名稱(chēng):CreateDevice

    * 功能描述:初始化設備對象

    * 參數列表:

    pDriverObject:從I/O管理器中傳進(jìn)來(lái)的驅動(dòng)對象

    * 返回 值:返回初始化狀態(tài)

    *************************************************************************/

    #pragma INITCODE   //指明此函數加載到INIT內存區域(即只在加載的時(shí)候需要載入內存,加載成功后可以從內存中卸載掉)

    NTSTATUS CreateDevice (

    IN PDRIVER_OBJECT    pDriverObject)

    {

    NTSTATUS status;

    PDEVICE_OBJECT pDevObj;

    PDEVICE_EXTENSION pDevExt;

    //創(chuàng )建設備名稱(chēng)

    UNICODE_STRING devName;

    RtlInitUnicodeString(&devName,L"

    //創(chuàng )建設備

    status = IoCreateDevice( pDriverObject,

    sizeof(DEVICE_EXTENSION),

    &(UNICODE_STRING)devName,

    FILE_DEVICE_UNKNOWN,//此種設備為獨占設備

    0, TRUE,

    &pDevObj );

    if (!NT_SUCCESS(status))

    return status;

    pDevObj->Flags |= DO_BUFFERED_IO;

    pDevExt = (PDEVICE_EXTENSION)pDevObj->DeviceExtension;

    pDevExt->pDevice = pDevObj;

    pDevExt->ustrDeviceName = devName;

    //創(chuàng )建符號鏈接

    UNICODE_STRING symLinkName;

    RtlInitUnicodeString(&symLinkName,L"

    pDevExt->ustrSymLinkName = symLinkName;

    status = IoCreateSymbolicLink( &symLinkName,&devName );

    if (!NT_SUCCESS(status))

    {

    IoDeleteDevice( pDevObj );

    return status;

    }

    return STATUS_SUCCESS;

    }

    /************************************************************************

    * 函數名稱(chēng):HelloDDKUnload

    * 功能描述:負責驅動(dòng)程序的卸載操作

【責編:cc】
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
內核編程之SSDTHook(2)Hook NtOpenProcess實(shí)現進(jìn)程保護
手把手跟我學(xué)驅動(dòng)(2)
<學(xué)習筆記>Windows驅動(dòng)開(kāi)發(fā)技術(shù)詳解
IRP_MN_START_DEVICE分發(fā)例程中的前進(jìn)和等待IRP總結
驅動(dòng)程序中IO定時(shí)器的實(shí)現詳解
【Delphi】驅動(dòng)繞過(guò)360的KiFastCallEntry鉤子
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久