113 lines
2.5 KiB
C++
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__
|
|
|