当前位置: 首页 > news >正文

如何建议一个网站竞价排名点击器

如何建议一个网站,竞价排名点击器,长湖南营销型网站,wordpress查看文章模板文章作者:grayfox作者主页:http://nokyo.blogbus.com原始出处:http://www.blogbus.com/nokyo-logs/34018521.html 在我昨日发布的《驱动学习笔记系列文章汇总(PDF)》第11.2节中,我没有给出使用DeviceIoControl通信的演示源码&…

 

文章作者:grayfox
作者主页:http://nokyo.blogbus.com

原始出处:http://www.blogbus.com/nokyo-logs/34018521.html

 

      在我昨日发布的《驱动学习笔记系列文章汇总(PDF)》第11.2节中,我没有给出使用DeviceIoControl通信的演示源码,附录中附带的程序是我尚未调试好的,因此没有达到通信的目的。

      今天又认真阅读了下张帆的《Windows驱动开发技术详解》第7章的内容,并对它给出的示例程序多次调试,总算把这个通信过程给理解了,下面我们先来看看应用层程序的代码:

#include <windows.h>

#include <stdio.h>

#include <winioctl.h>

#include "..\Ioctls.h"

 

#define SYMBOL_LINK "\\\\.\\Test"

 

int main()

{

    HANDLE hDevice = ::CreateFile(SYMBOL_LINK, 

                                GENERIC_READ | GENERIC_WRITE,

                                0,    

                                NULL,

                                OPEN_EXISTING,

                                FILE_ATTRIBUTE_NORMAL,

                                NULL );

    if (hDevice == INVALID_HANDLE_VALUE)

    {

        printf("Failed to Open Device : %d\n", ::GetLastError());

        return -1;

    }

 

    UCHAR InputBuffer[10];

    UCHAR OutputBuffer[10];

    DWORD dwOutput;

    

    memset(InputBuffer, 0xAA, 10);

    BOOL bRet = ::DeviceIoControl(hDevice, IOCTL_TEST, InputBuffer, 10, &OutputBuffer, 10, &dwOutput, NULL);

    if (bRet)

    {

        printf("Output buffer:%d bytes\n",dwOutput);

        for (int i=0;i<(int)dwOutput;i++)

        {

            printf("%02X ",OutputBuffer[i]);

        }

        printf("\n");

    }

 

    CloseHandle(hDevice);

    return 0;

}

      其中Ioctls.h这个头文件没有实质作用,它是为了在驱动程序和应用层程序之间共享IOCTL定义而设立的,内容很简单,如下所示:

#ifndef IOCTLS_H

#define IOCTLS_H

 

#ifndef CTL_CODE

    #pragma message("CTL_CODE undefined. Include winioctl.h or wdm.h")

#endif

 

#define IOCTL_TEST \

            CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS)

 

#endif

      我们再来看驱动程序,这里的xxxxDispatchDeviceControl函数需要作适当修改,如下所示:

NTSTATUS

TestDispatchDeviceControl(

    IN PDEVICE_OBJECT        DeviceObject,

    IN PIRP                    Irp

)

{

    NTSTATUS            Status = STATUS_SUCCESS;

    PIO_STACK_LOCATION    irpStack;

    ULONG                inBufLength, outBufLength;

    ULONG                i = 0;

    ULONG                ioControlCode;

    UCHAR                *InputBuffer, *OutputBuffer;

    

    irpStack = IoGetCurrentIrpStackLocation(Irp);

    

    inBufLength = irpStack->Parameters.DeviceIoControl.InputBufferLength;

    outBufLength = irpStack->Parameters.DeviceIoControl.OutputBufferLength;

    ioControlCode = irpStack->Parameters.DeviceIoControl.IoControlCode;

    

    if (ioControlCode == IOCTL_TEST)

    {

        KdPrint(("[Test] IOCTL_TEST : 0x%X", ioControlCode));

        // 读取数据

        InputBuffer = (UCHAR *)Irp->AssociatedIrp.SystemBuffer;

        for (i = 0; i < inBufLength; i++)

        {

            KdPrint(("[Test] %X\n", InputBuffer[i]));

        }

        

        // 写入数据

        OutputBuffer = (UCHAR *)Irp->AssociatedIrp.SystemBuffer;

        memset(OutputBuffer, 0xBB, outBufLength);

        

        Irp->IoStatus.Information = outBufLength;

    } 

    else

    {

        KdPrint(("[Test] Unknown IOCTL: 0x%X (%04X,%04X)", \

                    ioControlCode, DEVICE_TYPE_FROM_CTL_CODE(ioControlCode), IoGetFunctionCodeFromCtlCode(ioControlCode)));

 

        Status = STATUS_INVALID_PARAMETER;

        Irp->IoStatus.Information = 0;

    }    

    // 完成IRP

    Irp->IoStatus.Status = Status;

    IoCompleteRequest(Irp, IO_NO_INCREMENT);

    

    return Status;

}

 

      最后的演示结果如下图所示:

 

 

 

 

 

转载于:https://www.cnblogs.com/huhu0013/p/3312203.html

http://www.lbrq.cn/news/2466739.html

相关文章:

  • seo是东莞企业网站排seo河南网站建设报价
  • wordpress做小说网站吗搜索引擎主要包括三个部分
  • 网站建设怎样上传程序长春刚刚最新消息今天
  • 哈尔滨站建站时间朔州seo
  • 手机移动网站模板百度app安装免费下载
  • 网站建设渠道网站seo优化网站
  • 舟山网站建设推荐网站制作企业
  • 桂林北站改造优化师培训
  • 网站建设公司 优势百度网页链接
  • 网站建设 职位如皋网站制作
  • 南昌旅游网站建设方案手机怎么建自己的网站
  • h5做网站什么软件头条新闻最新消息
  • 汽车网站策划西安网站seo技术
  • 同性做视频网站网站功能开发
  • 江苏网站建设价格全渠道营销
  • 河南省建设工程一体化平台哈尔滨网络seo公司
  • 哪个网站做批发的新站整站快速排名
  • 公司做网站有意义么整合营销活动策划方案
  • 专业上海网站建设福州seo技巧培训
  • 天津市住房建设委员会网站seo长尾关键词优化
  • 企业网站 的网络营销方法有爱站seo工具包官网
  • 专业app网站建设哪家好大数据是干什么的
  • 河南住房和城乡建设厅网站百度号码认证平台取消标记
  • 常熟网站建设自己建网站流程
  • 阿里云ecs怎么建网站百度seo工具
  • 百度做网站搜索靠前seo怎么优化方法
  • 仿起点小说网站开发郑州学校网站建设
  • 手机网站制作代码与web有什么不同南宁网站建设网络公司
  • 有趣网站开发免费发布软文广告推广平台
  • 苏州网页关键词优化seo超级外链发布
  • 14-C语言:第14天笔记
  • [NLP]UPF+RTL联合仿真的VCS命令及UPF-aware 波形工具的使用
  • 计算机算术4-整形乘法
  • vue使用xlsx库导出excel
  • 《剑指offer》-数据结构篇-链表
  • AI 驱动与数字化技术双突破!华南Formnext展3D 打印开启智能制造新场景