进程的名字

宝塔面板全栈部署指南:Node后端+React前端与数据库配置实战 本文提供了一份详尽的宝塔面板全栈部署实战指南,涵盖Node.js后端、React前端与数据库的完整配置流程。文章深入解析了环境准备、数据库创建与导入、Node服务部署、PM2进程守护、React应用构建与托管,以及线上环境变量管理与安全配置等核心步骤,帮助开发者高效、稳定地将项目部署至生产环境。 阅读详情

typedef NTSTATUS (*QUERY_INFO_PROCESS) (
    __in HANDLE ProcessHandle,
    __in PROCESSINFOCLASS ProcessInformationClass,
    __out_bcount(ProcessInformationLength) PVOID ProcessInformation,
    __in ULONG ProcessInformationLength,
    __out_opt PULONG ReturnLength
    );
 

QUERY_INFO_PROCESS ZwQueryInformationProcess;

NTSTATUS GetProcessImageName(PUNICODE_STRING ProcessImageName)
{
    NTSTATUS status;
    ULONG returnedLength;
    ULONG bufferLength;
    PVOID buffer;
    PUNICODE_STRING imageName;
   
    PAGED_CODE(); // this eliminates the possibility of the IDLE Thread/Process

    if (NULL == ZwQueryInformationProcess) {

        UNICODE_STRING routineName;

        RtlInitUnicodeString(&routineName, L"ZwQueryInformationProcess");

        ZwQueryInformationProcess =
               (QUERY_INFO_PROCESS) MmGetSystemRoutineAddress(&routineName);

        if (NULL == ZwQueryInformationProcess) {
            DbgPrint("Cannot resolve ZwQueryInformationProcess/n");
        }
    }
    //
    // Step one - get the size we need
    //
    status = ZwQueryInformationProcess( NtCurrentProcess(),
                                        ProcessImageFileName,
                                        NULL, // buffer
                                        0, // buffer size
                                        &returnedLength);

    if (STATUS_INFO_LENGTH_MISMATCH != status) {

        return status;

    }

    //
    // Is the passed-in buffer going to be big enough for us? 
    // This function returns a single contguous buffer model...
    //
    bufferLength = returnedLength - sizeof(UNICODE_STRING);
   
    if (ProcessImageName->MaximumLength < bufferLength) {

        ProcessImageName->Length = (USHORT) bufferLength;

        return STATUS_BUFFER_OVERFLOW;
       
    }

    //
    // If we get here, the buffer IS going to be big enough for us, so
    // let's allocate some storage.
    //
    buffer = ExAllocatePoolWithTag(PagedPool, returnedLength, 'ipgD');

    if (NULL == buffer) {

        return STATUS_INSUFFICIENT_RESOURCES;
       
    }

    //
    // Now lets go get the data
    //
    status = ZwQueryInformationProcess( NtCurrentProcess(),
                                        ProcessImageFileName,
                                        buffer,
                                        returnedLength,
                                        &returnedLength);

    if (NT_SUCCESS(status)) {
        //
        // Ah, we got what we needed
        //
        imageName = (PUNICODE_STRING) buffer;

        RtlCopyUnicodeString(ProcessImageName, imageName);
       
    }

    //
    // free our buffer
    //
    ExFreePool(buffer);

    //
    // And tell the caller what happened.
    //   
    return status;
   
}

ThinkPad X230魔改指南:从博通网卡驱动到1080P屏显全攻略(附Sonoma避坑清单) 本文详细介绍了ThinkPad X230的全面改造方案,包括博通网卡驱动(BCM94352HMB)的安装与调试、1080P屏幕改装技术以及macOS Sonoma系统的适配优化。通过硬件升级和软件调优,使这台经典商务本焕发新生,适合DIY爱好者和技术极客参考实践。 阅读详情

相关推荐

【WRF-Chem】预处理工具(Preprocessors)总结

预处理工具(Preprocessors)总结

WW、forever的博客 1156

各种进程名称

下载进程 FlashBT.exe 网络电视  PPStream.exe QQ下载  QQDownload.exe PP狗 PPGou.exe 脱兔 TuoTu.exe BT下载 BitTorrent.exe BitSpirit.exe 快车 Flash

lniwn 1万+

扩展卡尔曼滤波 (EKF, Extended Kalman Filter) 算法详解及案例分析

扩展卡尔曼滤波是一种用于估计非线性动态系统状态的递归算法。其目标是通过结合非线性系统模型和观测数据,估计系统的最优状态。

闲人编程的博客 2311

linux平台方便的获取当前进程名字的几种方法

vim /proc/pid/status #可以获取name。在main函数中使用变量。在main函数中调用。

哦,原来你也在这里。 1720

linux修改进程名字,linux修改进程

一、linux中的进程名linux中有很多查看/操作进程的命令。这些命令的参数或显示的结果,有的是真实的进程名(top/pstree/pgrep/kill/killall),有的是进程的命令行参数(ps)。例如:有一个进程a.out,运行方式为:./a.out arg1 arg2这时如果用ps查看出来的结果是:./a.out arg1 arg2,即argv的内容。如果用top查看出来结果则是 a....

weixin_35758982的博客 4093

函数ZwQuerySystemInformation小结

函数存在于NTDLL.DLL动态链接库中。NTDLL.DLL负责ring3与ring0之间的通信。当使用子系统方式进行系统调用的时候,ntdll.dll和SSDT会配合使用。 关于ZwQuerySystemInformation这个函数可以用来查询进程信息、内核信息、硬件信息(例如CPU数目)、句柄信息、时间信息等54个系统信息。 该函数的原型是 NTSTATUS WI...

weixin_33906657的博客 414

Java来做马里奥 1 —木叶传承

Java来做马里奥 1 —木叶传承

aabbyyz的博客 516

Java来做马里奥[1]—木叶传承

继续前两天的博客内容,接着写Java中的ACT游戏实现,本来记得手里有C++版马里奥的角色和地图的,突然找不到丢那里了,凑活ps个GBA火影的图代替下……运行效果如下:此次重点演示了角色和地图的绘制……其实看过我以前写JAVA的RPG开发blog文章的早知道怎么弄的了……所以此次只帖代码……Role.java:package org.test.mario;import java.awt.G

【Java究竟怎么玩?】 5536

通过进程ID或名字结束进程

1.通过进程名:void CloseProgram(CString strProgram) { HANDLE handle; //定义CreateToolhelp32Snapshot系统快照句柄 HANDLE handle1; //定义要结束进程句柄 handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);//获得

zt_xcyk的专栏 2485

Linux获取进程名对应的进程

Linux获取进程名对应的进程号 id=`ps | grep "进程名" | grep -v "grep" | awk '{print $1}'`

wasapp的博客 1989

windows驱动里通过进程ID获得进程名和所属用户

在windows驱动中,通过 进程ID,可以获得进程完整路径和进程名, 也可以获得进程所属的用户名。 以下代码是整理出来完成这些功能的 两个实现函数。 // By fanxiushu 2013-07-02 ///获得进程名 NTSTATUS get_process_name(int pid, PWCHAR* out_fullpath, PWCHAR* out_name

fanxiushu的专栏 7028

linux修改进程名字

1 修改linux进程名字的基本原理 linux进程以argv[0]作为进程名字,因此只需要修改argv[0]处的字符串就修改了linux进程名字。 2 直接修改argv[0]会导致的问题 如果名字过程的话,argv[0]放不下了,就会踩后面的参数或者后面的环境变量了。 argv字符串数组后面紧接着存放的是该进程的环境变量。 3 解决办法 先保存argv和环境变量,再修改argv[...

weixin_34334744的博客 2069

根据名称获取对应进程名的ID

//获取对应进程名的ID DWORD GetPId4Name(const char *pszProcessName) { DWORD id = 0; //获得系统快照句柄 (通俗的讲, 就是得到当前的所有进程) HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0) ; PROCESSENTRY32 p

敲着代码闯天下 2631

linux下的进程描述符task_struct 结构体认识

操作系统在管理文件的时候主要有俩个步骤,先描述再组织。每一个进程都有一个pcb控制块,pcb控制块用task_struct结构体来存放内容,那么这个结构体当中到底放了一些什么内容,我们可以简单的认识一下,下面是一些基本的内容以及功能。 struct task_struct {       //这个是进程的运行时状态,-1代表不可运行,0代表可运行,>0代表已停止。  volatile

cvhbfgh的博客 1047

查看windows服务进程对应服务名称及常见服务描述

友链 tasklist /svc | findstr pid WpnService: Windows Push Notifications System Service windows消息推送服务

ma_de_hao_mei_le的博客 4640

根据进程名杀死进程 -kill进程

前两天一个老师给我出了一个linux操作上的问题,现在知道进程名怎样杀死这个进程。或许很多人都会和我一样说用 #pkill 进程名  或是 #killall 进程名 的确这个两个命令都能做到这些,而且我们平时一般知道进程名需要杀死进程的时候也都是用的这两个命令。可是他叫我用kill 命令来完成这个一操作。我们知道kill 要杀死进程是需要知道进程的id的即进程号,其实这个思路就是需要通过其

谷雨 9万+

表贴插装晶振、晶体Altium封装 AD封装库 2D+3D PCB封装库-6MB.zip

表贴插装晶振、晶体Altium封装 AD封装库 2D+3D PCB封装库

手机流量卡充值管理系统网站源码.zip

手机流量卡充值管理系统网站源码.zip

上一篇: HarddsikvolumeX和盘符对应关系
下一篇: VC中常用的20种方法
aasa2
博客等级 码龄25年 4粉丝 25原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值