//+----------------------------------------------------------------------- // // Microsoft Windows // // Copyright (c) Microsoft Corporation 1991 - 1995 // // File: pac.hxx // // Contents: internal structures and definitions for PACs // // // History: 24-May-95 SuChang Created // //------------------------------------------------------------------------ #ifndef __PAC2_HXX__ #define __PAC2_HXX__ typedef struct PAC_INFO_BUFFER2 { ULONG ulType; ULONG cbBufferSize; PBYTE pbBuffer; } PAC_INFO_BUFFER2, *PPAC_INFO_BUFFER2; typedef struct _PAC_CREDENTIAL_DATA2 { ULONG CredentialCount; SECPKG_SUPPLEMENTAL_CRED Credentials[ANYSIZE_ARRAY]; } PAC_CREDENTIAL_DATA2, *PPAC_CREDENTIAL_DATA2; typedef struct _PAC_CREDENTIAL_INFO2 { ULONG Version; ULONG EncryptionType; UCHAR Data[ANYSIZE_ARRAY]; } PAC_CREDENTIAL_INFO2, *PPAC_CREDENTIAL_INFO2; typedef struct _PACTYPE2 { ULONG cBuffers; PAC_INFO_BUFFER2 Buffers[ANYSIZE_ARRAY]; } PACTYPE2, *PPACTYPE2; ULONG PAC2_GetSize( IN PACTYPE2 *pPac ); ULONG PAC2_Marshal( IN PACTYPE2 *pPac, IN ULONG cbBuffer, OUT PBYTE pBuffer); ULONG PAC2_UnMarshal( IN PPACTYPE2 pBuffer, ULONG cbSize ); BOOLEAN PAC2_ReMarshal( IN PPACTYPE2 pPac, IN ULONG cbSize ); NTSTATUS PAC2_Init( IN PSAMPR_USER_ALL_INFORMATION UserAll, IN OPTIONAL PSAMPR_GET_GROUPS_BUFFER GroupsBuffer, IN OPTIONAL PSID_AND_ATTRIBUTES_LIST ExtraGroups, IN PSID LogonDomainId, IN PUNICODE_STRING LogonDomainName, IN PUNICODE_STRING LogonServer, IN ULONG SignatureSize, IN ULONG AdditionalDataCount, IN PPAC_INFO_BUFFER2 * AdditionalData, OUT PACTYPE2 ** ppPac ); NTSTATUS PAC2_InitAndUpdateGroups( IN PNETLOGON_VALIDATION_SAM_INFO2 OldValidationInfo, IN PSAMPR_PSID_ARRAY ResourceGroups, IN PPACTYPE2 OldPac, OUT PACTYPE2 ** ppPac ); PPAC_INFO_BUFFER2 PAC2_Find( IN PPACTYPE2 pPac, IN ULONG ulType, IN PPAC_INFO_BUFFER2 pElem); NTSTATUS PAC2_UnmarshallValidationInfo( IN OUT PNETLOGON_VALIDATION_SAM_INFO2 ValidationInfo, IN ULONG ValidationSize ); NTSTATUS PAC2_BuildCredentials( IN PSAMPR_USER_ALL_INFORMATION UserAll, OUT PBYTE * Credentials, OUT PULONG CredentialSize ); NTSTATUS PAC2_UnmarshallCredentials( IN OUT PPAC_CREDENTIAL_DATA Credentials, IN PBYTE Base, IN ULONG CredentialSize ); #endif // __PAC2_HXX__