zoukankan      html  css  js  c++  java
  • 驱动内核函数汇总

    驱动内核函数汇总

     

    文件头

    1. ntimage.h 内核有关结构体

     

    关于内存的函数

    1. ProbeForRead(),ProbeForWrite() 探测是否可读或可写

     

     

    关于I/O通信的函数

    1. IoCreateDevice 创建设备

    2. IoDeleteDevice 删除设备

    3. IoCreateSymbolicLink 创建符号链接

    4. IoDeleteSymbolicLink 删除符号链接

    5. IoGetCurrentIrpStackLocation 得到当前栈中的Irp请求

    6. IoCompleteRequest I/O 请求处理完毕

    7. IoAttachDeviceToDeviceStackSafe 将设备对象添加到设备栈的最顶层

    8. IoDetachDevice 卸载设备

    9. IoSkipCurrentIrpStackLocation 

    10. 通过设备名获取设备指针(可以再找到驱动再找到派发函数):

      NTSTATUS IoGetDeviceObjectPointer( _In_  PUNICODE_STRING ObjectName,_In_  ACCESS_MASK DesiredAccess,_Out_ PFILE_OBJECT *FileObject, _Out_ PDEVICE_OBJECT *DeviceObject);

     

    关于字符串函数

    1. PsGetCurrentProcessId() 获取当前进程id

     2. NTSTATUS PsLookupThreadByThreadId( _In_ HANDLE ThreadId, _Outptr_ PETHREAD *Thread);

     

    关于进程和线程的函数

    1. PsCreateSystemThread 创建线程

    2. KeDelayExecutionThread 内核延时(线程睡眠)

    3. PsGetCurrentProcessId 获取当前进程id

    4. NTSTATUS PsLookupProcessByProcessId( IN HANDLE ProcessId, OUT PEPROCESS* Process);  通过进程id来获取_PROCESS结构体

    5. NTSTATUS PsLookupThreadByThreadId( _In_ HANDLE ThreadId, _Outptr_ PETHREAD *Thread); 通过线程id来获取_ETHREAD结构体

    6. PPEB NTAPI PsGetProcessPeb(PEPROCESS eprocess);通过Eprocess获取PEB(未导出函数,自己声明)

    7. NTSTATUS SeLocateProcessImageName(_Inout_ PEPROCESS Process, _Outptr_ PUNICODE_STRING *pImageFileName ); 获取进程名称

    8. KeStackAttachProcess 附加进程 

     

    1. MmGetSystemRoutineAddress 获取内核模块和硬件模块的函数

     

  • 相关阅读:
    协方差的意义
    ios7新特性实践
    微信支付大盗--黑色产业链
    UVA 297 Quadtrees(四叉树建树、合并与遍历)
    HDU 2876 Ellipse, again and again
    java中接口的定义与实现
    Oracle Linux 6.3下安装Oracle 11g R2(11.2.0.3)
    Fortran使用隐形DO循环和reshape给一维和多维数组赋初值
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
  • 原文地址:https://www.cnblogs.com/onetrainee/p/12594384.html
Copyright © 2011-2022 走看看