これはもともとそのような仕様です。
VB.NETで取得した値が 537133083 だった場合
1. 537133083を16進表記にする 0x2004001B
2. 0x2004001B を要素で分けると
Severity 2 … Warning
Facility 004
Code 001B 下位16bit(つまり下4桁)
3.001B を 10進数に変換 27
27がイベントビューアで表示されてる値
詳しくは
http://msdn.microsoft.com/en-us/library/aa363651(VS.85).aspx
VBで下位16bitを取得したい場合は
Dim logEventId16 As Short = CShort("&H" & Strings.Right(Hex(log.Entries(i).EventID), 4))

コメント