Файлы сообщений
октября 12 2009 by admin in АдминистрированиеРазработчики регистрационных файлов Windows хотели создать эффективный механизм, независимый от языка системы. В результате части событий, предназначенные для чтения (например, категория и подробное описание), оказались отделены от приложения и помещены в файлы сообщений. Эти файлы имеют тип DLL или ЕХЕ. Они содержат нестандартные двоичные ресурсы, представляющие текст ваших сообщений. Подробно о DLL-файлах сообщений я расскажу позже, однако уже сейчас вы должны кое-что о них знать. С каждым источником событий можно связать три типа файлов сообщений: о событиях, о категориях и сообщений-параметров. Один DLL-файл сообщений (или ЕХЕ) может содержать любую их комбинацию, а следовательно, ваше приложение может хранить все три типа файлов в одной DLL. Можно поступить и наоборот — например, представить файл сообщений о событиях одного источника в виде нескольких DLL.
DLL-файл сообщений ассоциируется с источником событий посредством создания нескольких значений реестра в подразделе, название которого со-впадаег с содержимым параметраpszSourceNatne, передаваемым в RegisterEvent-Source. Таким образом, служба регистрации событий разом убивает двух зайцев, ведь новый раздел реестра используется и для указания файла, в котором будут сохраняться сообщения о событиях, Обычно эти разделы создает в реестре ПО, устанавливающее приложение, однако ничто не запрещает вашей службе добавить их самой.
Заметьте: CustomLog является подразделом раздела Event Log. По умолчанию в EventLog входят только подразделы Application, Security и System, однако ваше приложение может добавить новый подраздел (ничем не отличающийся от вышеописанных) для нестандартного регистрационного файла. При вызове функции RegisterEventSource система ищет в разделе HKEY_LOCAL_MACHI-NE\SYSTEM\CurrentControlSet\Services\EventLog\Zo,g подраздел, совпадающий с содержимым параметра pszSourceName. Регистрационные файлы просматриваются в алфавитном порядке до тех пор, пока не будет найден нужный. Поэтому пространство имен для источников событий используется всеми регистрационными файлами совместно независимо от того, стандартные они или нет. Если источник событий в разделе System совпадает с источником событий в разделе Application, он игнорируется.