mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
234 lines
5.5 KiB
234 lines
5.5 KiB
/*++
|
|
|
|
Copyright (c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
samisrv.h
|
|
|
|
Abstract:
|
|
|
|
This file contain private routines for use by Trusted SAM clients
|
|
which live in the same process as the SAM server.
|
|
|
|
Included in these routines are services for freeing buffers returned
|
|
by RPC server stub routines (SamrXxx() routines).
|
|
|
|
Author:
|
|
|
|
Cliff Van Dyke (CliffV) 26-Feb-1992
|
|
|
|
Environment:
|
|
|
|
User Mode - Win32
|
|
|
|
Revision History:
|
|
|
|
|
|
--*/
|
|
|
|
#ifndef _SAMISRV_
|
|
#define _SAMISRV_
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// Data types used by SAM and Netlogon for database replication //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
typedef enum _SECURITY_DB_TYPE {
|
|
SecurityDbSam = 1,
|
|
SecurityDbLsa
|
|
} SECURITY_DB_TYPE, *PSECURITY_DB_TYPE;
|
|
|
|
//
|
|
// These structures are used to get and set private data. Note that
|
|
// DataType must be the first field of every such structure.
|
|
//
|
|
|
|
typedef enum _SAMI_PRIVATE_DATA_TYPE {
|
|
SamPrivateDataNextRid = 1,
|
|
SamPrivateDataPassword
|
|
} SAMI_PRIVATE_DATA_TYPE, *PSAMI_PRIVATE_DATA_TYPE;
|
|
|
|
|
|
typedef struct _SAMI_PRIVATE_DATA_NEXTRID_TYPE {
|
|
SAMI_PRIVATE_DATA_TYPE DataType;
|
|
ULONG NextRid;
|
|
} SAMI_PRIVATE_DATA_NEXTRID_TYPE, *PSAMI_PRIVATE_DATA_NEXTRID_TYPE;
|
|
|
|
typedef struct _SAMI_PRIVATE_DATA_PASSWORD_TYPE {
|
|
SAMI_PRIVATE_DATA_TYPE DataType;
|
|
UNICODE_STRING CaseInsensitiveDbcs;
|
|
ENCRYPTED_LM_OWF_PASSWORD CaseInsensitiveDbcsBuffer;
|
|
UNICODE_STRING CaseSensitiveUnicode;
|
|
ENCRYPTED_NT_OWF_PASSWORD CaseSensitiveUnicodeBuffer;
|
|
UNICODE_STRING LmPasswordHistory;
|
|
UNICODE_STRING NtPasswordHistory;
|
|
} SAMI_PRIVATE_DATA_PASSWORD_TYPE, *PSAMI_PRIVATE_DATA_PASSWORD_TYPE;
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// The following prototypes are usable throughout the process that SAM //
|
|
// resides in. This may include calls by LAN Manager code that is not //
|
|
// part of SAM but is in the same process as SAM. //
|
|
// //
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
NTSTATUS
|
|
SamIConnect(
|
|
IN PSAMPR_SERVER_NAME ServerName,
|
|
OUT SAMPR_HANDLE *ServerHandle,
|
|
IN ACCESS_MASK DesiredAccess,
|
|
IN BOOLEAN TrustedClient
|
|
);
|
|
|
|
NTSTATUS
|
|
SamIAccountRestrictions(
|
|
IN SAM_HANDLE UserHandle,
|
|
IN PUNICODE_STRING LogonWorkstation,
|
|
IN PUNICODE_STRING Workstations,
|
|
IN PLOGON_HOURS LogonHours,
|
|
OUT PLARGE_INTEGER LogoffTime,
|
|
OUT PLARGE_INTEGER KickoffTime
|
|
);
|
|
|
|
NTSTATUS
|
|
SamICreateAccountByRid(
|
|
IN SAMPR_HANDLE DomainHandle,
|
|
IN SAM_ACCOUNT_TYPE AccountType,
|
|
IN ULONG RelativeId,
|
|
IN PRPC_UNICODE_STRING AccountName,
|
|
IN ACCESS_MASK DesiredAccess,
|
|
OUT SAMPR_HANDLE *AccountHandle,
|
|
OUT ULONG *ConflictingAccountRid
|
|
);
|
|
|
|
NTSTATUS
|
|
SamIGetSerialNumberDomain(
|
|
IN SAMPR_HANDLE DomainHandle,
|
|
OUT PLARGE_INTEGER ModifiedCount,
|
|
OUT PLARGE_INTEGER CreationTime
|
|
);
|
|
|
|
NTSTATUS
|
|
SamISetSerialNumberDomain(
|
|
IN SAMPR_HANDLE DomainHandle,
|
|
IN PLARGE_INTEGER ModifiedCount,
|
|
IN PLARGE_INTEGER CreationTime,
|
|
IN BOOLEAN StartOfFullSync
|
|
);
|
|
|
|
NTSTATUS
|
|
SamIGetPrivateData(
|
|
IN SAMPR_HANDLE SamHandle,
|
|
IN PSAMI_PRIVATE_DATA_TYPE PrivateDataType,
|
|
OUT PBOOLEAN SensitiveData,
|
|
OUT PULONG DataLength,
|
|
OUT PVOID *Data
|
|
);
|
|
|
|
NTSTATUS
|
|
SamISetPrivateData(
|
|
IN SAMPR_HANDLE SamHandle,
|
|
IN ULONG DataLength,
|
|
IN PVOID Data
|
|
);
|
|
|
|
NTSTATUS
|
|
SamISetAuditingInformation(
|
|
IN PPOLICY_AUDIT_EVENTS_INFO PolicyAuditEventsInfo
|
|
);
|
|
|
|
NTSTATUS
|
|
SamINotifyDelta (
|
|
IN SAMPR_HANDLE DomainHandle,
|
|
IN SECURITY_DB_DELTA_TYPE DeltaType,
|
|
IN SECURITY_DB_OBJECT_TYPE ObjectType,
|
|
IN ULONG ObjectRid,
|
|
IN PUNICODE_STRING ObjectName,
|
|
IN ULONG ReplicateImmediately,
|
|
IN PSAM_DELTA_DATA DeltaData OPTIONAL
|
|
);
|
|
|
|
NTSTATUS
|
|
SamIEnumerateAccountRids(
|
|
IN SAMPR_HANDLE DomainHandle,
|
|
IN ULONG AccountTypesMask,
|
|
IN ULONG StartingRid,
|
|
IN ULONG PreferedMaximumLength,
|
|
OUT PULONG ReturnCount,
|
|
OUT PULONG *AccountRids
|
|
);
|
|
|
|
|
|
|
|
VOID
|
|
SamIFree_SAMPR_SR_SECURITY_DESCRIPTOR (
|
|
PSAMPR_SR_SECURITY_DESCRIPTOR Source
|
|
);
|
|
|
|
VOID
|
|
SamIFree_SAMPR_DOMAIN_INFO_BUFFER (
|
|
PSAMPR_DOMAIN_INFO_BUFFER Source,
|
|
DOMAIN_INFORMATION_CLASS Branch
|
|
);
|
|
|
|
VOID
|
|
SamIFree_SAMPR_ENUMERATION_BUFFER (
|
|
PSAMPR_ENUMERATION_BUFFER Source
|
|
);
|
|
|
|
VOID
|
|
SamIFree_SAMPR_PSID_ARRAY (
|
|
PSAMPR_PSID_ARRAY Source
|
|
);
|
|
|
|
VOID
|
|
SamIFree_SAMPR_ULONG_ARRAY (
|
|
PSAMPR_ULONG_ARRAY Source
|
|
);
|
|
|
|
VOID
|
|
SamIFree_SAMPR_RETURNED_USTRING_ARRAY (
|
|
PSAMPR_RETURNED_USTRING_ARRAY Source
|
|
);
|
|
|
|
VOID
|
|
SamIFree_SAMPR_GROUP_INFO_BUFFER (
|
|
PSAMPR_GROUP_INFO_BUFFER Source,
|
|
GROUP_INFORMATION_CLASS Branch
|
|
);
|
|
|
|
VOID
|
|
SamIFree_SAMPR_ALIAS_INFO_BUFFER (
|
|
PSAMPR_ALIAS_INFO_BUFFER Source,
|
|
ALIAS_INFORMATION_CLASS Branch
|
|
);
|
|
|
|
VOID
|
|
SamIFree_SAMPR_GET_MEMBERS_BUFFER (
|
|
PSAMPR_GET_MEMBERS_BUFFER Source
|
|
);
|
|
|
|
VOID
|
|
SamIFree_SAMPR_USER_INFO_BUFFER (
|
|
PSAMPR_USER_INFO_BUFFER Source,
|
|
USER_INFORMATION_CLASS Branch
|
|
);
|
|
|
|
VOID
|
|
SamIFree_SAMPR_GET_GROUPS_BUFFER (
|
|
PSAMPR_GET_GROUPS_BUFFER Source
|
|
);
|
|
|
|
VOID
|
|
SamIFree_SAMPR_DISPLAY_INFO_BUFFER (
|
|
PSAMPR_DISPLAY_INFO_BUFFER Source,
|
|
DOMAIN_DISPLAY_INFORMATION Branch
|
|
);
|
|
|
|
|
|
#endif // _SAMISRV_
|