我正在为Windows构建一个设备驱动程序(WDM驱动程序,32位),我需要检测终端会话的创建和关闭。
我知道如何获取调用进程(ZwQueryInformationProcess
与ProcessSessionInformation
标志)的会话ID。我还拦截了图形驱动程序加载/卸载到会话的事件(通过拦截ZwSetSystemInformation
与SystemLoadImage
/SystemUnLoadImage
)。
我希望会话创建/关闭事件之后会调用SystemCreateSession
/SystemDeleteSession
标志的ZwSetSystemInformation
。但不幸的是,这并没有发生。到目前为止,我没有找到会话创建/关闭的良好指示。
SystemCreateSession
和SystemDeleteSession
不再使用。我没有对此做太多的调查,但是看看当传递给NtCreateUserProcess
的ProcessFlags中设置0x80标志时。这可能与为每个会话创建CSR有关。