Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Network Monitor maakt gebruik van de exportfunctie DllMain om het bestaan van de parser te identificeren en bronnen vrij te geven die door Network Monitor worden gebruikt om informatie over de parser op te slaan.
Wanneer Network Monitor voor het eerst DllMain- aanroept, roept de parser-DLL CreateProtocol aan om het volgende te doen:
- Geef het protocol op dat door de parser wordt gedetecteerd.
- Geef invoerpunten op voor resterende parser-exportfuncties die door Network Monitor worden aanroepen.
Wanneer Network Monitor de laatste keer DllMain- aanroept, roept DllMain-DestroyProtocol- aan om alle resources vrij te geven die Network Monitor gebruikt om informatie over de parser op te slaan.
De volgende procedure identificeert de stappen die nodig zijn om DllMain-te implementeren.
DllMain- implementeren
Geef de ENTRYPOINTS--structuur op voor de CreateProtocol-functie en de globale Attach-variabele. De bijlagevariabele wordt gebruikt om het aantal actieve protocolexemplaren bij te houden.
Bekijk de waarde van de Command parameter die het besturingssysteem instelt.
Als de parameter Command is ingesteld op DLL_PROCESS_ATTACH en Attach 0 is, roep CreateProtocol op om de protocolnaam en toegangspunten voor de volgende exportfuncties op te geven.
- registreren
- Uitschrijven
- HerkenKader
- KoppelEigenschappen
- FormatProperties- (alleen vereist als netwerkmonitor de protocoleigenschappen weergeeft).
Als de parameter Command is ingesteld op DLL_PROCESS_DETACH en koppelen gelijk is aan 0, roept u DestroyProtocol aan met behulp van de instantiegreep die CreateProtocol retourneert.
Retourneer TRUE omdat de functie DllMain parser altijd TRUE-moet retourneren.
Hier volgt een basis implementatie van DllMain. In het codevoorbeeld wordt een case-instructie gebruikt om waarden van de parameter Command te vangen om te bepalen of CreateProtocol- of DestroyProtocol- moet worden aangeroepen.
#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;
}