Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Network Monitor a DllMain exportálási függvénnyel azonosítja az elemző meglétét, és felszabadítja azokat az erőforrásokat, amelyeket a Network Monitor az elemző adatainak tárolására használ.
Amikor a Network Monitor először hívja meg DllMain, az elemző DLL az alábbi műveletek végrehajtására hívja meg CreateProtocol:
- Adja meg az elemző által észlelt protokollt.
- Adjon meg belépési pontokat a Network Monitor által meghívott elemző-exportálási függvényekhez.
Amikor a Network Monitor utoljára hívja DllMain, DllMain meghívja DestroyProtocol, hogy felszabadítsa az összes erőforrást, amelyet a Network Monitor az elemző adatainak tárolására használ.
Az alábbi eljárás az DllMainimplementálásához szükséges lépéseket azonosítja.
DllMain implementálása
Határozza meg a ENTRYPOINTS struktúráját a CreateProtocol függvény és a globális Csatolás változó esetében. A Csatolás változó a futó protokollpéldányok számának nyomon követésére szolgál.
Tekintse meg az operációs rendszer által megadott command paraméter értékét.
Ha a Command paraméter DLL_PROCESS_ATTACH értékre van állítva, és a Csatolás értéke 0, akkor hívja meg a CreateProtocol függvényt, hogy megadja az alábbi exportált függvények protokollnevét és belépési pontjait.
- nyilvántartás
- regisztráció törlése
- RecognizeFrame
- AttachProperties
- FormatProperties (csak akkor szükséges, ha a Network Monitor megjeleníti a protokoll tulajdonságait).
Ha a Command paraméter értéke DLL_PROCESS_DETACH, a Csatolás értéke 0, akkor hívja meg DestroyProtocol a CreateProtocoláltal visszaadottleíróval.
Adja vissza IGAZ, mert a DllMain elemző függvénynek mindig IGAZkell visszaadnia.
Az alábbiakban a DllMainalapszintű implementációját íme. A példakód esetfeltételt használ a Command paraméter értékeinek elfogására annak megállapításához, hogy meg kell-e hívni a(z) CreateProtocol vagy a(z) DestroyProtocol.
#include <windows.h>
// Entry point structure for parser export functions and global
// Attach variable.
ENTRYPOINTS EntryPoints =
{
Register,
Deregister,
RecognizeFrame,
AttachProperties,
FormatProperties
};
DWORD Attached = 0;
BOOL WINAPI DllMain(HANDLE hInstance, ULONG Command, LPVOID Reserved)
{
switch(Command)
{
// Call CreateProtocol.
case DLL_PROCESS_ATTACH:
// Loading parser DLL.
if(Attached == 0)
{
hProtocol = CreateProtocol( "ProtocolName",
&EntryPoints,
ENTRYPOINTS_SIZE);
}
Attached++;
break;
// Call DestroyProtocol.
case DLL_PROCESS_DETACH:
// Unloading parser DLL.
Attached--;
if(Attached == 0)
{
DestroyProtocol( hProtocol);
}
break;
}
return TRUE;
}