xpmgr/BuildTools/Include/napmanagement.idl

137 lines
3.4 KiB
Plaintext

////////////////////////////////////////////////////////////
//
// Copyright (c) Microsoft Corporation.
//
// SYNOPSIS
//
// IDL source for management of the NapClient
//
////////////////////////////////////////////////////////////
#ifndef NAPMANAGEMENT_IDL
#define NAPMANAGEMENT_IDL
import "NapTypes.idl";
import "unknwn.idl";
[object,
uuid(432a1da5-3888-4b9a-a734-cff1e448c5b9),
pointer_default(unique)]
interface INapClientManagement : IUnknown
{
// Used for reporting information about the NAP client.
// Strings will be retrieved in the caller's locale-id.
//
HRESULT
GetNapClientInfo(
[out] BOOL* isNapEnabled,
[out] CountedString** clientName,
[out] CountedString** clientDescription,
[out] CountedString** protocolVersion
) const;
// Used to query the isolation state of the NapClient.
// If any of the connections are in an unknown state,
// the 'unknownConnections' flag is set to true.
// The 'isolationInfo' does not reflect unknown states.
//
HRESULT
GetSystemIsolationInfo(
[out] IsolationInfo** isolationInfo,
[out] BOOL* unknownConnections
) const;
// Registers an SHA.
//
// Return codes:
// NAP_E_CONFLICTING_ID: SHA with this id is already
// registered.
HRESULT
RegisterSystemHealthAgent(
[in] const NapComponentRegistrationInfo* agent
);
// Unregisters an SHA.
//
// Return codes:
// NAP_E_STILL_BOUND: SHA is still bound and could
// not be unregistered.
//
HRESULT
UnregisterSystemHealthAgent(
[in] SystemHealthEntityId id
);
// Registers an enforcer.
//
// Return codes:
// NAP_E_CONFLICTING_ID: Enforcer with this id is
// already registered.
HRESULT
RegisterEnforcementClient(
[in] const NapComponentRegistrationInfo* enforcer
);
// Unregisters an enforcer.
//
// Return codes:
// NAP_E_STILL_BOUND: Enforcer is still bound and
// could not be unregistered.
//
HRESULT
UnregisterEnforcementClient(
[in] EnforcementEntityId id
);
// Used to query the list of registered SHAs.
//
HRESULT
GetRegisteredSystemHealthAgents(
[out] SystemHealthEntityCount* count,
[out, size_is(, *count)]
NapComponentRegistrationInfo** agents
) const;
// Used to query the list of registered enforcers.
//
HRESULT
GetRegisteredEnforcementClients(
[out] EnforcementEntityCount* count,
[out, size_is(, *count)]
NapComponentRegistrationInfo** enforcers
) const;
};
[object,
uuid(07a1127b-18cc-422a-b988-e892600fcc74),
pointer_default(unique)]
interface INapClientManagement2 : INapClientManagement
{
// Used to query the isolation state and extended isolation
// state of the NapClient.
// If any of the connections are in an unknown state,
// the 'unknownConnections' flag is set to true.
// The 'isolationInfo' does not reflect unknown states.
//
HRESULT
GetSystemIsolationInfoEx(
[out] IsolationInfoEx** isolationInfo,
[out] BOOL* unknownConnections
) const;
};
cpp_quote("// Declarations of CLSIDs of objects provided ")
cpp_quote("// by the system. Link to uuid.lib to get them ")
cpp_quote("// defined. ")
cpp_quote("EXTERN_C const CLSID ")
cpp_quote(" CLSID_NapClientManagement;")
#endif // NAPMANAGEMENT_IDL