WindowsXP-SP1/base/fs/remotefs/dfs/inc/dfsheader.h
2020-09-30 16:53:49 +02:00

81 lines
2.0 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_HEADER_H
#define __DFS_HEADER_H
#define DFS_OBJECT_MAJOR 0x81
typedef enum _DFS_OBJECT_TYPES {
DFS_OT_UNDEFINED = 0x8100,
DFS_OT_PREFIX_TABLE,
DFS_OT_NAME_TABLE,
DFS_OT_SERVER_INFO,
DFS_OT_ROOT_OBJECT,
DFS_OT_LINK_OBJECT,
DFS_OT_REPLICA_OBJECT,
DFS_OT_METADATA_STORAGE,
DFS_OT_REGISTRY_MACHINE,
DFS_OT_REFERRAL_STRUCT,
DFS_OT_REGISTRY_STORE,
DFS_OT_AD_STORE,
DFS_OT_POLICY_OBJECT,
DFS_OT_REFERRAL_LOAD_CONTEXT,
DFS_OT_AD_DOMAIN,
DFS_OT_ENTERPRISE_STORE
} DFS_OBJECT_TYPES;
typedef struct _DFS_OBJECT_HEADER {
union {
struct {
UCHAR ObjectType;
UCHAR ObjectMajor; // Only used for debugging.
}Ob;
USHORT NodeType; // Mainly for debugging.
}Node;
SHORT NodeSize;
LONG ReferenceCount; // count of people referencing this.
} DFS_OBJECT_HEADER, *PDFS_OBJECT_HEADER;
#define DfsInitializeHeader(_hdr, _type, _size) \
(_hdr)->Node.NodeType = (USHORT)(_type), \
(_hdr)->NodeSize = (USHORT)(_size), \
(_hdr)->ReferenceCount = 1
#define DfsIncrementReference(_hdr) \
InterlockedIncrement(&((PDFS_OBJECT_HEADER)(_hdr))->ReferenceCount)
#define DfsDecrementReference(_hdr) \
InterlockedDecrement(&((PDFS_OBJECT_HEADER)(_hdr))->ReferenceCount)
#define DfsGetHeaderType(_x) (((PDFS_OBJECT_HEADER)(_x))->Node.NodeType)
#define DfsGetHeaderSize(_x) (((PDFS_OBJECT_HEADER)(_x))->NodeSize)
#define DfsGetHeaderCount(_x) (((PDFS_OBJECT_HEADER)(_x))->ReferenceCount)
#define DFS_FILTER_NAME L"\\DfsServer"
typedef DWORD DFSSTATUS;
#endif /* __DFS_HEADER_H */