xpmgr/BuildTools/Include/naputil.h

187 lines
3.1 KiB
C

////////////////////////////////////////////////////////////
//
// Copyright (c) Microsoft Corporation.
//
// SYNOPSIS
//
// NAP utilities.
//
////////////////////////////////////////////////////////////
#ifndef NAPUTIL_H
#define NAPUTIL_H
#if _MSC_VER > 1000
#pragma once
#endif
#include "naptypes.h"
#include "napmanagement.h"
#include "napservermanagement.h"
#include "napprotocol.h"
#include "napenforcementclient.h"
#ifdef __cplusplus
extern "C" {
#endif
// The following functions are exported in QUtil.dll.
//
#ifndef NAPAPI
#define NAPAPI DECLSPEC_IMPORT
#endif
// All the COM interfaces supported by the NAP system
// use standard COM memory management rules and the COM
// memory allocator (CoTaskMemAlloc and CoTaskMemFree).
// in parameters -- allocated and freed by caller.
// out parameters -- allocated by callee, freed
// by caller using CoTaskMem*()
// in/out parameters -- allocated by caller, freed
// and reallocated by callee,
// ultimately freed by caller,
// using CoTaskMem*()
//
// The following functions are helpers to aid with
// COM memory management of some complex structures.
//
// In the Free() functions below, all embedded pointers
// will also be freed.
//
// Return values of Alloc functions:
// E_INVALIDARG
// E_OUTOFMEMORY
// S_OK
NAPAPI
HRESULT WINAPI
AllocFixupInfo(
IN OUT FixupInfo** fixupInfo,
IN UINT16 countResultCodes
);
NAPAPI
HRESULT WINAPI
AllocConnections(
IN OUT Connections** connections,
IN UINT16 connectionsCount
);
NAPAPI
HRESULT WINAPI
AllocCountedString(
IN OUT CountedString** countedString,
IN CONST WCHAR* string
);
NAPAPI
VOID WINAPI
FreeFixupInfo(
IN FixupInfo* fixupInfo
);
NAPAPI
VOID WINAPI
FreeConnections(
IN Connections* connections
);
NAPAPI
VOID WINAPI
FreeIsolationInfo(
IN IsolationInfo* isolationInfo
);
NAPAPI
VOID WINAPI
FreeIsolationInfoEx(
IN IsolationInfoEx* isolationInfo
);
NAPAPI
VOID WINAPI
FreeCountedString(
IN CountedString* countedString
);
NAPAPI
VOID WINAPI
FreeSoH(
IN SoH* soh
);
NAPAPI
VOID WINAPI
FreeNetworkSoH(
IN NetworkSoH* networkSoh
);
NAPAPI
VOID WINAPI
FreePrivateData(
IN PrivateData* privateData
);
NAPAPI
VOID WINAPI
FreeSoHAttributeValue(
IN SoHAttributeType type,
IN SoHAttributeValue* value
);
NAPAPI
VOID WINAPI
FreeNapComponentRegistrationInfoArray(
IN UINT16 count,
IN NapComponentRegistrationInfo** info
);
NAPAPI
VOID WINAPI
FreeSystemHealthAgentState(
IN SystemHealthAgentState* state
);
// InitializeNapAgentNotifier and UninitializeNapAgentNotifier are used to
// subscribe to NapAgent service state change notifications and quarantine
// state change notifications.
// These functions are not thread safe and should be called once for each
// process.
NAPAPI
HRESULT WINAPI
InitializeNapAgentNotifier(
IN NapNotifyType type,
IN HANDLE hNotifyEvent
);
NAPAPI
VOID WINAPI
UninitializeNapAgentNotifier(
IN NapNotifyType type
);
#ifdef __cplusplus
}
#endif
#endif // NAPUTIL_H