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

127 lines
2.3 KiB
C

//+-----------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (c) Microsoft Corporation 1992 - 1996
//
// File: ntlmutil.h
//
// Contents: prototypes for NtLm utility functions
//
//
// History: ChandanS 25-Jul-1996 Stolen from kerberos\client2\kerbutil.h
//
//------------------------------------------------------------------------
#ifndef __NTLMUTIL_H__
#define __NTLMUTIL_H__
#include <malloc.h>
///////////////////////////////////////////////////////////////////////////////
// //
// Miscellaneous macros //
// //
///////////////////////////////////////////////////////////////////////////////
#ifdef __cplusplus
extern "C"
{
#endif
NTSTATUS
NtLmDuplicateUnicodeString(
OUT PUNICODE_STRING DestinationString,
IN OPTIONAL PUNICODE_STRING SourceString
);
NTSTATUS
NtLmDuplicateString(
OUT PSTRING DestinationString,
IN OPTIONAL PSTRING SourceString
);
NTSTATUS
NtLmDuplicatePassword(
OUT PUNICODE_STRING DestinationString,
IN OPTIONAL PUNICODE_STRING SourceString
);
NTSTATUS
NtLmDuplicateSid(
OUT PSID *DestinationSid,
IN PSID SourceSid
);
VOID
NtLmFree(
IN PVOID Buffer
);
PVOID
NtLmAllocate(
IN SIZE_T BufferSize
);
PVOID
NtLmAllocateLsaHeap(
IN ULONG BufferSize
);
VOID
NtLmFreeLsaHeap(
IN PVOID Buffer
);
//
// internal versions for use when code only executed in LSA.
//
#if DBG
PVOID
NtLmAllocatePrivateHeap(
IN SIZE_T BufferSize
);
VOID
NtLmFreePrivateHeap(
IN PVOID Buffer
);
PVOID
I_NtLmAllocate(
IN SIZE_T BufferSize
);
VOID
I_NtLmFree(
IN PVOID Buffer
);
#else
//
// routines that use LsaHeap - necessary for buffers which
// LSA frees outside of package from LsaHeap
//
//
// routines that use LsaPrivateHeap.
//
#define NtLmAllocatePrivateHeap(x) LsaFunctions->AllocatePrivateHeap(x)
#define NtLmFreePrivateHeap(x) LsaFunctions->FreePrivateHeap(x)
#define I_NtLmAllocate(x) Lsa.AllocatePrivateHeap(x)
#define I_NtLmFree(x) Lsa.FreePrivateHeap(x)
#endif
#ifdef __cplusplus
}
#endif
#endif // __NTLMUTIL_H__