【发布时间】:2012-04-14 19:07:36
【问题描述】:
我开始编写 TDI 过滤器驱动程序,我想知道的一件事是哪个进程正在生成请求。我猜这些信息在(大部分未记录的)结构中的某处可用。例如,我目前在 TDI_CONNECT 事件中获取 IP 地址和端口,如下所示:
stackIrp = IoGetCurrentIrpStackLocation(irp);
connectRequest = (TDI_REQUEST_KERNEL_CONNECT*) &stackIrp->Parameters;
transportAddr = (TRANSPORT_ADDRESS*) connectRequest->RequestConnectionInformation->RemoteAddress;
taAddr = (TA_ADDRESS*) transportAddr->Address;
ipAddr = (TDI_ADDRESS_IP*) taAddr->Address;
我最终只是得到一个套接字句柄,我必须向后工作以获取进程信息,还是我在某个地方得到一个进程 ID?
最终我想知道进程信息(EXE 名称、句柄等),但还需要知道拥有进程正在运行的会话的 Windows 用户......因为是的,我在写另一个网站过滤应用程序,与其他所有其他应用程序一样,它需要为每个用户提供不同的选项。
【问题讨论】: