如何从进程名获得进程ID
2009-08-24 14:27
239 查看
#include <ntddk.h> #include "ntifs.h" HANDLE RetrivePID( char* ProcessName ) { PEPROCESS PeProcess = NULL; PLIST_ENTRY pNextEntry, pListHead; PeProcess = PsGetCurrentProcess(); if(!PeProcess) { DbgPrint( "[ALARM] -> Cannot find 'System' process!" ); return (HANDLE)-1; } if( IsListEmpty( &PeProcess->ActiveProcessLinks ) ) DbgPrint("[ALARM] -> No processes found!"); else { pListHead = &PeProcess->ActiveProcessLinks; pNextEntry = pListHead->Flink; while(pNextEntry != pListHead) { PeProcess = CONTAINING_RECORD( pNextEntry,EPROCESS,ActiveProcessLinks ); if(PeProcess->ActiveThreads) if( !IsListEmpty( &PeProcess->ThreadListHead ) ) { //if( _strnicmp( PeProcess->ImageFileName, ProcessName ,strlen(ProcessName) ) == 0 ) // return PsGetProcessId( PeProcess ); DbgPrint("Process name: %s - PID:%d", PeProcess->ImageFileName, PeProcess->UniqueProcessId); } PeProcess = NULL; pNextEntry = pNextEntry->Flink; } } return (HANDLE)-1; } VOID Unload(IN PDRIVER_OBJECT DriverObject) { DbgPrint("Test Driver :: Unload"); } NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPathName) { DbgPrint("Test Driver :: DriverEntry"); // Test function RetrivePID("notepad.exe"); DriverObject->DriverUnload = Unload; return STATUS_SUCCESS; }
相关文章推荐
- DLL中如何获得调用该DLL的进程ID和提权代码
- 如何获得各个运行进程的id
- 如何根据进程名称获得所有进程ID
- 在SQL Server中如何获得刚插入一条新记录的自动ID号
- 如何获得系统进程信息
- GetWindowThreadProcessId获得进程、线程ID
- 在linux中通过进程名获得进程id
- 根据进程id获得本地Java应用的JMX 属性
- 通过进程号ID获得窗口的句柄
- linux下如何获取进程的id和命令行参数
- 如何从客户端获得服务器端控件ID
- Linux如何知道当前进程的ID
- 如何在脚本中获取进程ID(PID)
- Java如何获取当前进程ID以及所有Java进程的进程ID
- 获得程序进程ID
- 在.Net中,如何获得一个进程的父进程?
- linux如何根据进程ID查找启动程序的路径
- C# 获得当前进程或线程的ID
- javascript如何通过鼠标左击获得当前元素ID
- 如何获得当前本进程所在的目录