WPP-nyomkövetés engedélyezése a Windows eseménynapló-szolgáltatáson keresztül

A Windows eseménynapló szolgáltatás támogatja a WPP-naplózást és -dekódolást. Ez a témakör azt ismerteti, hogyan engedélyezheti a WPP-nyomkövetést a Windows Eseménynapló szolgáltatáson keresztül.

A WPP-nyomkövetés engedélyezése ebben a forgatókönyvben nem igényel további munkát a WPP-szolgáltatónak. A Windows Eseménynapló szolgáltatás használatához azonban meg kell adnia egy jegyzékfájlt és egy eseménynapló-szolgáltatót. A WPP-nyomkövetés engedélyezéséhez deklaráljon egy hibakeresési csatornát, és adja meg a társított vezérlő GUID azonosítóját a WPP-szolgáltatóhoz deklarált módon.

Például:

<instrumentationManifest
    xmlns="http://schemas.microsoft.com/win/2004/08/events"
    xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema"  xsi:schemaLocation="http://schemas.microsoft.com/win/2004/08/events eventman.xsd"  
    >
   <instrumentation>
        <events>
            <provider name="Microsoft-Windows-mySampleProvider"
                guid="{61CE3EC9-E5E8-4b96-A451-74631A6E0D5C}"
                >
          <channel
        chid="MS_WINDOWS_GE_DEBUG"
        enabled="false"
        isolation="System"
        message="$(string.Microsoft-Windows-GenerateEvent.channel.CHANNEL_DEBUG.message)"
        name="Microsoft-Windows-GenerateEvent/Debug"
        symbol="CHANNEL_DEBUG"
        type="Debug"
        >
        <publishing>
          <level>2</level>
          <keywords>0xFFFFFFFF</keywords>
          <controlGuid>{d58c126f-b309-11d1-969e-0000f875a5bc}</controlGuid>
        </publishing>
        </channel>
       </provider>
    </events>
   </instrumentation>
</instrumentationManifest>

A WPP-nyomkövetés nem mindig engedélyezett, ezért alapértelmezés szerint a jegyzékben lévő engedélyezési attribútumot hamis értékre kell állítani. Ha WPP-nyomkövetésre van szükség, módosítsa az attribútumot a jegyzékben, hogy engedélyezve="igaz".

A vezérlőbiteket nem adhatja meg vagy nem választhatja ki egyenként. Ha az összes WPP-eseményt engedélyezni szeretné ehhez a csatornához, adja meg a 0XFFFFFFFF kulcsszóértékét. Belsőleg a vezérlőbitek kulcsszavakra lesznek leképezve; Ha tudja, hogy melyik bit egy adott kulcsszóra van leképezve, kiválaszthatja a kulcsszót egy adott eseménykészlet lekéréséhez. A példajegyzékben a kulcsszó értéke 0xFFFF, mert kevesebb mint 16 WPP-vezérlőbitre van szükség. Ha egy adott eseménykészletet szeretne lekérni a telepítés után, módosíthatja a kulcsszavakat a wevtutil.exe parancssori segédprogrammal. A parancs a következő:

wevtutilsl<csatorna neve>/k:<kulcsszóérték, amely a vezérlőbitnek> felel meg

Vegye figyelembe, hogy a kulcsszó értékének módosításához először le kell tiltani a csatornát.

Egy csatorna ilyen módon történő deklarálása lehetővé teszi, hogy a WPP-szolgáltató (amelynek a vezérlő GUID-azonosítója meg van adva) és az eseménynapló-szolgáltató (amely alatt ez a csatorna deklarálva van) hozzáférhessen a hibakeresési csatornához, így bármelyik szolgáltató írhat erre a csatornára. A WPP-események vagy a normál ETW-események mostantól ezen a csatornán láthatók az eseménynaplón keresztül.

A WPP-események nincsenek dekódolva. Az eseményekkel társított üzenetsztringek lekéréséhez helyezze a TMF-fájlokat a %windir%\System32\winevt\TraceFormat könyvtárba. A TMF-fájlokat egy olyan segédprogrammal szerezheti be, mint például a Tracepdb.exe, amely a PDB-fájlt használja a bemenethez, és TMF-fájlokat ad vissza.