xpmgr/BuildTools/Include/napcertrelyingparty.idl

85 lines
2.4 KiB
Plaintext

////////////////////////////////////////////////////////////
//
// Copyright (c) Microsoft Corporation.
//
// SYNOPSIS
//
// IDL source for interaction with certificate relying
// parties.
//
////////////////////////////////////////////////////////////
#ifndef NAPCERTRELYINGPARTY_IDL
#define NAPCERTRELYINGPARTY_IDL
import "NapTypes.idl";
import "unknwn.idl";
cpp_quote("#include <wincrypt.h>")
cpp_quote("static const UINT32 NapAfwZonePropId = CERT_FIRST_USER_PROP_ID;")
cpp_quote("static const UINT32 NapAfwProtectionLevelPropId = CERT_FIRST_USER_PROP_ID + 1;")
// Certificate relying parties must use this interface to
// communicate with the NapAgent.
//
[object,
uuid(62c02ffc-4c77-4158-8754-782d5b4ee66e),
pointer_default(unique)]
interface INapCertRelyingParty : IUnknown
{
// Subscribe to an already registered HCS server
//
// Parameters:-
// id : id of the subscriber
// reserved : should be NULL.
// subscriberName : name of the subscriber, currently
// used only for logging purposes
// certExists : a health certificate from this HCS is
// already being maintained by the NapAgent, and is
// present in the MachineStore
//
HRESULT
SubscribeCertByGroup(
[in] EnforcementEntityId id,
[in] const BSTR subscriberName,
[in, unique] const VARIANT* reserved,
[out] BOOL* certExists
);
// UnSubscribe an HCS server.
// If there are no other subscribers to the HCS, the
// NapAgent will delete the corresponding health
// certificates from the MachineStore
//
// Parameters:-
// id : id of the subscriber
// reserved : should be NULL.
//
HRESULT
UnSubscribeCertByGroup(
[in] EnforcementEntityId id,
[in, unique] const VARIANT* reserved
);
// Get a list of relying parties that have subscribed
//
// Parameters:-
// count : number of subscribed relying parties
// relyingParties : subscribed relying parties
HRESULT
GetSubscribedRelyingParties(
[out] EnforcementEntityCount* count,
[out, size_is(, *count)]
EnforcementEntityId** relyingParties
);
};
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_NapCertRelyingParty;")
#endif // NAPCERTRELYINGPARTY_IDL