Как обнаружить создание / завершение сеанса в драйвере WDM? - PullRequest
1 голос
/ 19 июля 2011

Я создаю драйвер устройства для Windows (драйвер WDM, 32-разрядный), и мне нужно обнаружить создание и закрытие сеансов терминала.

Я знаю, как получить идентификатор сеанса вызывающего процесса (ZwQueryInformationProcess с флагом ProcessSessionInformation). Я также перехватываю событие загрузки / выгрузки графического драйвера в сеанс (перехватывая ZwSetSystemInformation с SystemLoadImage / SystemUnLoadImage).

И я надеялся, что за событием создания / закрытия сеанса последует вызов ZwSetSystemInformation с флагами SystemCreateSession / SystemDeleteSession. Но, к сожалению, этого не происходит. Пока что я не нашел хорошего указания на создание / закрытие сеанса.

1 Ответ

1 голос
/ 20 июля 2011

SystemCreateSession и SystemDeleteSession больше не используются. Я не провел много исследований по этому вопросу, но посмотрим, когда в ProcessFlags установлен флаг 0x80, переданный в NtCreateUserProcess. Это может быть связано с созданием CSR для каждого сеанса.

...