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.
Smscstat.dll is een bibliotheek met 32-bits C-API's voor het rapporteren van Configuration Manager statusberichten van een toepassing die op een clientcomputer wordt uitgevoerd. Smscstat.dll is alleen aanwezig en werkt alleen goed op Computers met Windows 95, Windows 98, Windows NT, Windows 2000, Windows Server 2003, Windows XP en Windows Vista waarop de clientsoftware is geïnstalleerd.
Smscstat.dll laden
Toepassingen moeten expliciet Smscstat.dll laden met behulp van de Win32 LoadLibrary() API. LoadLibrary vereist het volledige pad naar Smscstat.dll.
| Client | Pad |
|---|---|
| SMS 2003 Advanced Client | % windir%\system32\ccm |
| Configuration Manager client | % windir%\system32\ccm |
De logica voor het vinden van het pad op een bepaalde client is als volgt:
Lees de registerwaarde Lokaal SMS-pad in sleutel HKEY_LOCAL_MACHINE\Software\Microsoft\SMS\Client\Configuration\ClientProperties.
Als de laatste drie tekens van dit pad ccm zijn, is dit de geavanceerde client of Configuration Manager client en bevindt Smscstat.dll zich in het opgehaalde pad.
Toegang tot de functies in Smscstat.dll
Wanneer Smscstat.dll is geladen, roept u de Win32-API GetProcAddress() aan om functie-aanwijzers naar de statusberichtfuncties op te halen. De drie statusberichtfuncties zijn:
CreateSMSStatusMessage()AddAttributeToSMSStatusMessage()ReportSMSStatusMessageGetProcAddress()retourneert een aanwijzer van het typeFARPROC. Voor het gemakSmscstat.hdefinieert (geleverd met de SMS 2003 SDK) C-functieprototypes voor de statusbericht-API's. De toepassing moet de door geretourneerdeGetProcAddress()aanwijzer naar het juiste prototype casten en vervolgens de functie aanroepen via de aanwijzer.Als Smscstat.dll niet bestaat, zoals in het geval van verouderde SMS 2.0-clients waarop Service Pack 1 of een hoger servicepack niet is geïnstalleerd,
LoadLibrary()mislukt. Een volgende aanroep van de Win32-APIGetLastError()retourneert een foutcode die aangeeft dat het bestand niet bestaat. Waarschijnlijk is dit fout 126: 'De opgegeven module is niet gevonden'.De Win32-API
FreeLibrarymoet worden aangeroepen wanneer toegang tot de functies niet meer nodig is.
De statusberichtfuncties in Smscstat.dll gebruiken
Er zijn drie stappen voor het gebruik van de statusberichtfuncties.
Maak een statusberichtobject door de functie aan te
CreateSMSStatusMessage()roepen. Deze functie wijst een object toe en retourneert een ingang naar de aanroeper.Voeg alle benodigde statusberichtkenmerken toe aan het object met behulp van de
AddAttributeToSMSStatusMessage()functie. Statusberichtkenmerken zijn optioneel en zijn alleen vereist als de toepassing moet worden geïntegreerd met een bepaalde Configuration Manager-functie. De meeste toepassingen doen dit niet.Roep
ReportSMSStatusMessageaan om het statusbericht naar het Configuration Manager statussysteem te verzenden en de toewijzing van het object ongedaan te maken.