GetConsoleProcessList 函数
检索附加到当前控制台的进程列表。
语法
DWORD WINAPI GetConsoleProcessList(
_Out_ LPDWORD lpdwProcessList,
_In_ DWORD dwProcessCount
);
参数
lpdwProcessList [out]
指向缓冲区的指针,该缓冲区在成功时会接收进程标识符数组。 这必须是有效缓冲区,不能是 NULL
。 缓冲区必须有空间来接收至少 1 个返回的进程 ID。
dwProcessCount [in]
可在 lpdwProcessList 缓冲区中存储的最大进程标识符数目。 此值必须大于 0。
返回值
如果函数成功,则返回值小于或等于 dwProcessCount,并表示存储在 lpdwProcessList 缓冲区中的进程标识符数目。
如果缓冲区太小,无法容纳全部有效的进程标识符,则返回值是所需的数组元素数目。 该函数将不会在缓冲区中存储任何标识符。 在这种情况下,请使用返回值来分配足够大的缓冲区,以存储整个列表并再次调用该函数。
如果返回值为零,则函数已失败,因为每个控制台至少有一个与之关联的进程。 要获得更多的错误信息,请调用 GetLastError。
如果提供了 NULL
进程列表或进程计数为 0,则调用将返回 0,而 GetLastError
将返回 ERROR_INVALID_PARAMETER
。 请提供至少有一个元素的缓冲区来调用此函数。 如果返回代码大于所提供缓冲区的长度,请分配更大的缓冲区并再次调用。
备注
若要编译使用此函数的应用程序,请将 _WIN32_WINNT 定义为 0x0501 或更高版本。 有关详细信息,请参阅使用 Windows 标头。
提示
不建议使用此 API,并且此 API 没有虚拟终端等效项。 此决策有意使 Windows 平台与其他操作系统保持一致。 此状态仅与本地用户、会话以及特权上下文相关。 如果使用此 API,则通过跨平台实用工具和传输(例如 SSH)进行远程处理的应用程序可能无法正常工作。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | ConsoleApi3.h (via WinCon.h, include Windows.h) |
库 | Kernel32.lib |
DLL | Kernel32.dll |