windows-nt/Source/XPSP1/NT/public/internal/base/inc/atom.h
2020-09-26 16:20:57 +08:00

56 lines
1.2 KiB
C

/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
atom.h
Abstract:
This is the header file that describes the constants and data
structures used by the atom manager, exported by ntdll.dll and
ntrtl.lib
Procedure prototypes are defined in ntrtl.h
Author:
Steve Wood (stevewo) 27-Nov-1995
Revision History:
--*/
typedef struct _RTL_ATOM_TABLE_ENTRY {
struct _RTL_ATOM_TABLE_ENTRY *HashLink;
USHORT HandleIndex;
RTL_ATOM Atom;
USHORT ReferenceCount;
UCHAR Flags;
UCHAR NameLength;
WCHAR Name[ 1 ];
} RTL_ATOM_TABLE_ENTRY, *PRTL_ATOM_TABLE_ENTRY;
typedef struct _RTL_ATOM_TABLE {
ULONG Signature;
#if defined(NTOS_KERNEL_RUNTIME)
EX_PUSH_LOCK PushLock;
PHANDLE_TABLE ExHandleTable;
#else
RTL_CRITICAL_SECTION CriticalSection;
RTL_HANDLE_TABLE RtlHandleTable;
#endif
ULONG NumberOfBuckets;
PRTL_ATOM_TABLE_ENTRY Buckets[ 1 ];
} RTL_ATOM_TABLE, *PRTL_ATOM_TABLE;
#define RTL_ATOM_TABLE_SIGNATURE (ULONG)'motA'
typedef struct _RTL_ATOM_HANDLE_TABLE_ENTRY {
USHORT Flags;
USHORT LockCount;
PRTL_ATOM_TABLE_ENTRY Atom;
} RTL_ATOM_HANDLE_TABLE_ENTRY, *PRTL_ATOM_HANDLE_TABLE_ENTRY;