windows-nt/Source/XPSP1/NT/ds/security/inc/pac2.hxx
2020-09-26 16:20:57 +08:00

113 lines
2.5 KiB
C++

//+-----------------------------------------------------------------------
//
// 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__