Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Nuta
Platforma ochrony dostępu do sieci nie jest dostępna od systemu Windows 10
Konfiguruje moduł sprawdzania kondycji systemu (SHV), w tym rejestrację i wyrejestrowanie z systemem ochrony dostępu do sieci.
Nuta
Zestaw SDK ochrony dostępu do sieci zawiera również pełny zestaw przykładowego kodu, który można znaleźć w katalogu ...\Samples\NetDS\NAP... katalog instalacji zestawu SDK. Ten przykładowy zestaw zawiera agenta kondycji systemu (SHA), shV i wymuszania klienta (EC). Ma on pełne działające scenariusze ochrony dostępu do sieci konfigurujące komunikację między SHA-SHV i SHA-EC.
#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);
}