typedef struct _mmpolicystate { GUID gPolicyID; LPWSTR pszPolicyName; BOOL bInSPD; DWORD dwErrorCode; struct _mmpolicystate * pNext; } MMPOLICYSTATE, * PMMPOLICYSTATE; DWORD PAAddMMPolicies( PIPSEC_ISAKMP_DATA * ppIpsecISAKMPData, DWORD dwNumPolicies ); DWORD PACreateMMPolicyState( PIPSEC_ISAKMP_DATA pIpsecISAKMPData, PMMPOLICYSTATE * ppMMPolicyState ); VOID PAFreeMMPolicyState( PMMPOLICYSTATE pMMPolicyState ); DWORD PACreateMMPolicy( PIPSEC_ISAKMP_DATA pIpsecISAKMPData, PMMPOLICYSTATE pMMPolicyState, PIPSEC_MM_POLICY * ppSPDMMPolicy ); DWORD PACreateMMOffers( DWORD dwNumISAKMPSecurityMethods, PCRYPTO_BUNDLE pSecurityMethods, PDWORD pdwOfferCount, PIPSEC_MM_OFFER * ppOffers ); VOID PACopyMMOffer( PCRYPTO_BUNDLE pBundle, PIPSEC_MM_OFFER pOffer ); VOID PAFreeMMPolicy( PIPSEC_MM_POLICY pSPDMMPolicy ); VOID PAFreeMMOffers( DWORD dwOfferCount, PIPSEC_MM_OFFER pOffers ); DWORD PADeleteAllMMPolicies( ); VOID PAFreeMMPolicyStateList( PMMPOLICYSTATE pMMPolicyState ); PMMPOLICYSTATE FindMMPolicyState( GUID gPolicyID ); DWORD PADeleteMMPolicies( PIPSEC_ISAKMP_DATA * ppIpsecISAKMPData, DWORD dwNumPolicies ); DWORD PADeleteMMPolicy( GUID gPolicyID ); VOID PADeleteMMPolicyState( PMMPOLICYSTATE pMMPolicyState ); DWORD PADeleteInUseMMPolicies( );