Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Anmerkung
Die Netzwerkzugriffsschutzplattform ist ab Windows 10 nicht verfügbar.
Richtet ein Systemintegritätsvalierermodul (System Health Validator, SHV) ein, einschließlich Registrierung und Aufhebung der Registrierung beim NAP-System.
Anmerkung
Das NAP SDK enthält auch einen vollständigen Satz von Beispielcode, der in den ...\Samples\NetDS\NAP zu finden ist... Verzeichnis Ihrer SDK-Installation. Dieser Beispielsatz enthält einen Systemintegritäts-Agent (SYSTEM Health Agent, SHA), SHV und Erzwingungsclient (EC). Es verfügt über vollständige NAP-Szenarien, die die Kommunikation zwischen SHA-SHV und SHA-EC einrichten.
#include <windows.h>
#include "stdafx.h"
#include "NapUtil.h"
static const wchar_t friendlyName[] = L"SDK SHV Sample";
static const wchar_t version[] = L"1.0.0.1";
static const wchar_t description[] = L"System Health Validator(SHV)";
static const wchar_t vendor[] = L"Microsoft";
/// Registers the SDK SHV with the NAP Server.
HRESULT RegisterSdkShv()
{
HRESULT hr = S_OK;
CComPtr<INapServerManagement> pSHVMgmt = NULL;
NapComponentRegistrationInfo shvInfo;
ZeroMemory (&shvInfo, sizeof(shvInfo));
hr = pSHVMgmt.CoCreateInstance(CLSID_NapServerManagement, NULL, CLSCTX_INPROC_SERVER);
hr = FillShvComponentRegistrationInfo(&shvInfo);
hr = pSHVMgmt->RegisterSystemHealthValidator(&shvInfo, (CLSID *)&__uuidof(CSampleShv));
FreeComponentRegistration(&shvInfo);
return hr;
}
/// Unregisters the SDK SHV with the NAP Server.
HRESULT UnregisterSdkShv()
{
HRESULT hr = S_OK;
CComPtr<INapServerManagement> pSHVMgmt = NULL;
hr = pSHVMgmt.CoCreateInstance(CLSID_NapServerManagement, NULL, CLSCTX_INPROC_SERVER);
hr = pSHVMgmt->UnregisterSystemHealthValidator(QuarSampleSystemHealthId);
return hr;
}
/// Fill the NapComponentRegistrationInfo structure that needs to be passed during registration.
HRESULT FillShvComponentRegistrationInfo (NapComponentRegistrationInfo *shvInfo)
{
HRESULT hr = S_OK;
shvInfo->id = QuarSampleSystemHealthId;
//<Temporarily till implement the Info Class>
shvInfo->infoClsid = GUID_NULL;
hr = ConstructCountedString(friendlyName, sizeof(friendlyName), &(shvInfo->friendlyName));
hr = ConstructCountedString(description, sizeof(description), &(shvInfo->description));
hr = ConstructCountedString(version, sizeof(version), &(shvInfo->version));
hr = ConstructCountedString(vendor, sizeof(vendor), &(shvInfo->vendorName));
return hr;
}
// Helper Function for FillShvComponentRegistrationInfo.
HRESULT ConstructCountedString(const WCHAR* src, UINT16 len, CountedString* dest)
{
HRESULT hr = S_OK;
DWORD retCode = ERROR_SUCCESS;
hr = AllocateMemory(dest->string, ((len+1)*sizeof(WCHAR)));
dest->length = len;
retCode = StringCchCopy(dest->string, len+1, src);
return hr;
}
// Helper Function for releasing ShaComponentRegistrationInfo members
void FreeComponentRegistration(NapComponentRegistrationInfo *shvInfo)
{
FreeMemory(shvInfo->friendlyName.string);
FreeMemory(shvInfo->description.string);
FreeMemory(shvInfo->version.string);
FreeMemory(shvInfo->vendorName.string);
}