windows-nt/Source/XPSP1/NT/base/fs/remotefs/dfs/inc/dfsmisc.h
2020-09-26 16:20:57 +08:00

212 lines
3.4 KiB
C

/*++
Copyright (c) 1989 Microsoft Corporation.
Module Name:
header.h
Abstract:
This module contains the main infrastructure for mup data structures.
Revision History:
Uday Hegde (udayh) 11\10\1999
NOTES:
*/
#ifndef __DFS_MISC_H__
#define __DFS_MISC_H__
#ifdef __cplusplus
extern "C" {
#endif
VOID
DfsGetNetbiosName(
PUNICODE_STRING pName,
PUNICODE_STRING pNetbiosName,
PUNICODE_STRING pRemaining );
DFSSTATUS
DfsGetPathComponents(
PUNICODE_STRING pName,
PUNICODE_STRING pServerName,
PUNICODE_STRING pShareName,
PUNICODE_STRING pRemaining);
DFSSTATUS
DfsGetFirstComponent(
PUNICODE_STRING pName,
PUNICODE_STRING pFirstName,
PUNICODE_STRING pRemaining);
DFSSTATUS
DfsIsThisAMachineName(LPWSTR MachineName);
DFSSTATUS
DfsIsThisADomainName(LPWSTR DomainName);
DFSSTATUS
DfsGenerateUuidString(LPWSTR *UuidString );
VOID
DfsReleaseUuidString(LPWSTR *UuidString );
DFSSTATUS
DfsCreateUnicodeString(
PUNICODE_STRING pDest,
PUNICODE_STRING pSrc );
DFSSTATUS
DfsCreateUnicodeStringFromString(
PUNICODE_STRING pDest,
LPWSTR pSrcString );
DFSSTATUS
DfsCreateUnicodePathString(
PUNICODE_STRING pDest,
ULONG NumberOfLeadingSeperators,
LPWSTR pFirstComponent,
LPWSTR pRemaining );
DFSSTATUS
DfsCreateUnicodePathStringFromUnicode(
PUNICODE_STRING pDest,
ULONG NumberOfLeadingSeperators,
PUNICODE_STRING pFirst,
PUNICODE_STRING pRemaining );
VOID
DfsFreeUnicodeString(
PUNICODE_STRING pDfsString );
DFSSTATUS
DfsGetSharePath(
IN LPWSTR ServerName,
IN LPWSTR ShareName,
OUT PUNICODE_STRING pPathName );
ULONG
DfsSizeUncPath(
PUNICODE_STRING FirstComponent,
PUNICODE_STRING SecondComponent );
VOID
DfsCopyUncPath(
LPWSTR NewPath,
PUNICODE_STRING FirstComponent,
PUNICODE_STRING SecondComponent );
ULONG
DfsApiSizeLevelHeader(
ULONG Level );
NTSTATUS
AddNextPathComponent(
PUNICODE_STRING pPath );
NTSTATUS
StripLastPathComponent(
PUNICODE_STRING pPath );
DFSSTATUS
PackGetULong(
PULONG pValue,
PVOID *ppBuffer,
PULONG pSizeRemaining );
DFSSTATUS
PackSetULong(
ULONG Value,
PVOID *ppBuffer,
PULONG pSizeRemaining );
ULONG
PackSizeULong();
DFSSTATUS
PackGetUShort(
PUSHORT pValue,
PVOID *ppBuffer,
PULONG pSizeRemaining );
DFSSTATUS
PackSetUShort(
USHORT Value,
PVOID *ppBuffer,
PULONG pSizeRemaining );
ULONG
PackSizeUShort();
DFSSTATUS
PackGetString(
PUNICODE_STRING pString,
PVOID *ppBuffer,
PULONG pSizeRemaining );
DFSSTATUS
PackSetString(
PUNICODE_STRING pString,
PVOID *ppBuffer,
PULONG pSizeRemaining );
ULONG
PackSizeString(
PUNICODE_STRING pString);
DFSSTATUS
PackGetGuid(
GUID *pGuid,
PVOID *ppBuffer,
PULONG pSizeRemaining );
DFSSTATUS
PackSetGuid(
GUID *pGuid,
PVOID *ppBuffer,
PULONG pSizeRemaining );
ULONG
PackSizeGuid();
#define UNICODE_PATH_SEP L'\\'
#define IsEmptyString(_str) \
( ((_str) == NULL) || ((_str)[0] == UNICODE_NULL) )
#define IsLocalName(_pUnicode) \
( (((_pUnicode)->Length == sizeof(WCHAR)) && ((_pUnicode)->Buffer[0] == L'.')) || \
(((_pUnicode)->Length == 2 * sizeof(WCHAR)) && ((_pUnicode)->Buffer[0] == L'.') && ((_pUnicode)->Buffer[1] == UNICODE_NULL)) )
#ifdef __cplusplus
}
#endif
#endif /* __DFS_MISC_H__ */