windows-nt/Source/XPSP1/NT/ds/security/protocols/schannel/lsa/mapsam.h
2020-09-26 16:20:57 +08:00

156 lines
3.4 KiB
C

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1995.
//
// File: mapsam.h
//
// Contents:
//
// Classes:
//
// Functions:
//
// History: 10-17-96 RichardW Created
//
//----------------------------------------------------------------------------
#ifndef __MAPSAM_H__
#define __MAPSAM_H__
BOOL
SslInitSam(
VOID
);
NTSTATUS
SslGetPacForUser(
IN PUNICODE_STRING AlternateName,
IN BOOL AllowGuest,
OUT PUCHAR * pPacData,
OUT PULONG pPacDataSize
);
NTSTATUS
SslCreateTokenFromPac(
IN PUCHAR MarshalledPac,
IN ULONG MarshalledPacSize,
IN PUNICODE_STRING AccountDomain,
OUT PLUID NewLogonId,
OUT PHANDLE Token
);
typedef
NTSTATUS (NTAPI * SAMICONNECT) (
IN PSAMPR_SERVER_NAME ServerName,
OUT SAMPR_HANDLE *ServerHandle,
IN ACCESS_MASK DesiredAccess,
IN BOOLEAN TrustedClient
);
typedef
NTSTATUS (NTAPI * SAMRCLOSEHANDLE)(
IN SAMPR_HANDLE * Handle);
typedef
NTSTATUS (NTAPI * SAMRQUERYINFORMATIONUSER)(
IN SAMPR_HANDLE Handle,
IN USER_INFORMATION_CLASS Class,
OUT PSAMPR_USER_INFO_BUFFER * Buffer);
typedef
NTSTATUS (NTAPI * SAMRGETGROUPSFORUSER)(
IN SAMPR_HANDLE Handle,
OUT PSAMPR_GET_GROUPS_BUFFER * Groups);
typedef
NTSTATUS
(NTAPI * SAMROPENUSER)(
IN SAMPR_HANDLE Handle,
IN ACCESS_MASK DesiredAccess,
IN ULONG Rid,
OUT SAMPR_HANDLE * UserHandle);
typedef
NTSTATUS (NTAPI * SAMROPENDOMAIN)(
IN SAMPR_HANDLE Handle,
IN ACCESS_MASK DesiredAccess,
IN PRPC_SID DomainId,
OUT SAMPR_HANDLE * DomainHandle );
NTSTATUS
SamIOpenUserByAlternateId(
IN SAMPR_HANDLE DomainHandle,
IN ACCESS_MASK DesiredAccess,
IN PUNICODE_STRING AlternateId,
OUT SAMPR_HANDLE * UserHandle );
typedef
NTSTATUS (NTAPI * SAMIOPENUSERBYALTERNATEID)(
IN SAMPR_HANDLE DomainHandle,
IN ACCESS_MASK DesiredAccess,
IN PUNICODE_STRING AlternateId,
OUT SAMPR_HANDLE * UserHandle );
typedef
VOID (NTAPI * SAMIFREE_SAMPR_GET_GROUPS_BUFFER)(
PSAMPR_GET_GROUPS_BUFFER Source
);
typedef
VOID (NTAPI * SAMIFREE_SAMPR_USER_INFO_BUFFER)(
PSAMPR_USER_INFO_BUFFER Source,
USER_INFORMATION_CLASS Branch
);
//
// LSA
//
typedef
NTSTATUS (NTAPI * LSAIOPENPOLICYTRUSTED)(
OUT PLSAPR_HANDLE PolicyHandle);
typedef
NTSTATUS (NTAPI * LSARQUERYINFORMATIONPOLICY)(
LSAPR_HANDLE Handle,
POLICY_INFORMATION_CLASS Class,
PLSAPR_POLICY_INFORMATION * Info);
typedef
NTSTATUS (NTAPI * LSARCLOSE)(
LSAPR_HANDLE * Handle);
typedef
VOID (NTAPI * LSAIFREE_LSAPR_POLICY_INFORMATION)(
POLICY_INFORMATION_CLASS Class,
PLSAPR_POLICY_INFORMATION Info);
extern SAMICONNECT pSamIConnect ;
extern SAMROPENDOMAIN pSamrOpenDomain ;
extern SAMRCLOSEHANDLE pSamrCloseHandle ;
extern SAMRQUERYINFORMATIONUSER pSamrQueryInformationUser ;
extern SAMRGETGROUPSFORUSER pSamrGetGroupsForUser ;
extern SAMROPENUSER pSamrOpenUser ;
extern SAMIOPENUSERBYALTERNATEID pSamrOpenUserByAlternateId ;
extern SAMIFREE_SAMPR_GET_GROUPS_BUFFER pSamIFree_SAMPR_GET_GROUPS_BUFFER ;
extern SAMIFREE_SAMPR_USER_INFO_BUFFER pSamIFree_SAMPR_USER_INFO_BUFFER ;
extern LSAIOPENPOLICYTRUSTED pLsaIOpenPolicyTrusted ;
extern LSARQUERYINFORMATIONPOLICY pLsarQueryInformationPolicy ;
extern LSARCLOSE pLsarClose ;
extern LSAIFREE_LSAPR_POLICY_INFORMATION pLsaIFree_LSAPR_POLICY_INFORMATION ;
#endif // __MAPSAM_H__