在内核中如何遍历进程,寻找每个eprocess

在内核中怎么遍历进程,寻找每个eprocess.
请问 在内核中怎么遍历进程,寻找每个eprocess,然后通过eprocess 结束这个进程。

------解决方案--------------------
先枚举进程,获取你需要进程的ID
C/C++ code

DWORD GetProcessVid(TCHAR* lpName)
{
    HANDLE         hProcessSnap = NULL;
    BOOL           bRet      = FALSE;
    PROCESSENTRY32 pe32      = {0};

    if(!lpName)
    {
        return 0;
    }
    
    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
    if (hProcessSnap == INVALID_HANDLE_VALUE)
        return 0;
    
    pe32.dwSize = sizeof(PROCESSENTRY32);
    
    if (Process32First(hProcessSnap, &pe32))
    {  
        do
        {
            if(wcscmp(_wcsupr(pe32.szExeFile),_wcsupr(lpName)) == 0)
            {
                CloseHandle (hProcessSnap);
                return pe32.th32ProcessID;
            }
        }
        while (Process32Next(hProcessSnap, &pe32));
        bRet = 0;
    }
    else
        bRet = 0;
    
    CloseHandle (hProcessSnap);
    return bRet;
}