Реферат: Winlogon notification package. Теория и практика

{

WriteLog(L"Workstation unlocked", pInfo);

}

extern "C" void __stdcall

WLEventStartShell(PWLX_NOTIFICATION_INFO pInfo)

{

WriteLog(L"User already loged on and network"

L" resouces are avaliable", pInfo);

}

Теперь необходимо экспортировать эти функции для других приложений. Для этого создадим файл Notify.def и добавим его в проект. В единственной секции EXPORTS укажем экспортируемые функции

EXPORTS

WLEventLogon

WLEventLogoff

WLEventStartup

WLEventShutdown

WLEventStartScreenSaver

WLEventStopScreenSaver

WLEventLock

WLEventUnlock

WLEventStartShell

После успешной компиляции необходимо подписаться на события Winlogon.

ПРЕДУПРЕЖДЕНИЕ

Необходимо помнить, что dll исполняется в адресном пространстве процесса, который ее вызывает. Если dll спровоцирует исключительную ситуацию, тогда, если не обработать ошибку, работа процесса будет прекращена. Процесс Winlogon.exe очень чувствителен к таким вещам. При возникновении ошибки он покажет синий экран смерти, а в случае наличия соответствующих настроек перегрузит систему. Поэтому настойчиво рекомендуется тестировать программу на виртуальном компьютере.

Для этого зайдем в реестр и отыщем ключ:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify

Создадим в нем подключ MyNotify и значения, как показано на рисунке ниже.

Рисунок 1.

Для удобства поместим файл Notify.dll по указанному пути. После перезагрузки системы приложение начнет создавать логи.

К-во Просмотров: 210
Бесплатно скачать Реферат: Winlogon notification package. Теория и практика