2016-08-05 1 views
3

몇 가지 사용자 지정 이벤트 뷰어 이벤트를 정의하려고합니다. MSDN 및 기타 온라인 소스에서 지침을 따르지 만 이벤트 뷰어에서 관련 텍스트 데이터를 찾을 수 없습니다.NDIS 드라이버가있는 사용자 지정 이벤트 메시지

이 내가 무슨 짓을했는지 있습니다 :

  • 이벤트 코드 및합니다 (WDK 시리얼 드라이버의 예를 다음) 관련 문자열 메시지 컴파일러에 대한 입력 파일을 만들었습니다.
  • 메시지 컴파일러에서 생성 한 .rc 파일을 기본 드라이버 리소스 파일 (MyDriver.rc)에 포함 시켰습니다.
  • 메시지 컴파일러에서 생성 한 헤더 파일을 관련 드라이버 모듈에 포함 시켰습니다.
  • API를 사용하여 포함 된 헤더 파일에서 새 ID를 사용하여 이벤트를 작성합니다.
  • 는 이벤트 소스를 식별하는 Inf를 레지스트리 문자열로 드라이버 바이너리를 추가 :

HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll; %%SystemRoot%%\System32\drivers\MyDriver.sys" 
HKR, , TypesSupported, 0x00010001, 7 

모든 이벤트 뷰어에 의해 문자열 표시를 제외하고 작동합니다. 그것들을 인식하지 못하고 "메시지 리소스가 있지만 메시지가 문자열/메시지 테이블"에서 이벤트 설명에 표시되지 않습니다. WDK 예제와 유일한 중요한 차이점은 일반 WDM API 대신 NDIS API를 사용한다는 것입니다. 편집기에서 .sys 파일을 열 때 텍스트가 명확하게 표시되기 때문에 텍스트가 드라이버 바이너리에 포함되어 있다고 확신합니다. 이 문제에 대한 제안 사항에 감사드립니다.

+0

나는 아무도이 주제에 할 말이 아무것도없는 것을 믿을 수 없어 ... – SomeWittyUsername

답변

0

글쎄, 1 년 반 만에 나는 문제를 발견했다. 분명히 이벤트 뷰어 레지스트리 문자열 파서가 공백 문자가 있으면 두 번째 메시지 파일 이름을 올바르게 추출 할 수 없습니다.

따라서 수정하려면 공백을 제거해야합니다. 즉, 대신 다음 INF 파일에

HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll; %%SystemRoot%%\System32\drivers\MyDriver.sys" 

쓰기이 :

HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll;%%SystemRoot%%\System32\drivers\MyDriver.sys"