214 if (!AtomNameString->
Length)
291 PWSTR AtomNameString;
292 ULONG AtomInfoLength;
293 ULONG AtomNameLength;
297 if (!Unicode &&
Size > 0x7000)
Size = 0x7000;
320 AtomNameString = (
PWSTR)AtomName;
328 AtomNameString = TempBuffer;
364 AtomNameString = AtomInfo->
Name;
375 RetVal = AtomNameLength /
sizeof(
WCHAR);
378 if (AtomNameString != (
PWSTR)AtomName)
413 if (TempBuffer)
RtlFreeHeap(RtlGetProcessHeap(), 0, TempBuffer);
515 if (nSize < 4 || nSize > 511)
nSize = 37;
UINT WINAPI GetAtomNameA(ATOM nAtom, LPSTR lpBuffer, int nSize)
ATOM WINAPI GlobalDeleteAtom(ATOM nAtom)
NTSTATUS NTAPI NtQueryInformationAtom(RTL_ATOM Atom, ATOM_INFORMATION_CLASS AtomInformationClass, PVOID AtomInformation, ULONG AtomInformationLength, PULONG ReturnLength)
NTSTATUS NTAPI NtDeleteAtom(IN RTL_ATOM Atom)
#define STATUS_INVALID_PARAMETER
*nSize LPSTR _Inout_ LPDWORD nSize
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
UINT WINAPI GetAtomNameW(ATOM nAtom, LPWSTR lpBuffer, int nSize)
ATOM WINAPI GlobalAddAtomA(LPCSTR lpString)
IN PVOID IN PVOID IN USHORT IN USHORT Size
ATOM WINAPI GlobalFindAtomW(LPCWSTR lpString)
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_opt_ PCUNICODE_STRING UnicodeString
ATOM WINAPI InternalFindAtom(BOOLEAN Local, BOOLEAN Unicode, LPCSTR AtomName)
#define RtlMoveMemory(Destination, Source, Length)
ATOM WINAPI InternalAddAtom(BOOLEAN Local, BOOLEAN Unicode, LPCSTR AtomName)
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
ATOM WINAPI DeleteAtom(ATOM nAtom)
NTSTATUS NTAPI RtlQueryAtomInAtomTable(PRTL_ATOM_TABLE AtomTable, RTL_ATOM Atom, PULONG RefCount, PULONG PinCount, PWSTR AtomName, PULONG NameLength)
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
ATOM WINAPI AddAtomW(LPCWSTR lpString)
DWORD BaseSetLastNTError(IN NTSTATUS Status)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
UINT WINAPI GlobalGetAtomNameW(ATOM nAtom, LPWSTR lpBuffer, int nSize)
NTSTATUS NTAPI RtlDeleteAtomFromAtomTable(IN PRTL_ATOM_TABLE AtomTable, IN RTL_ATOM Atom)
#define NT_SUCCESS(StatCode)
ATOM WINAPI FindAtomW(LPCWSTR lpString)
ATOM WINAPI InternalDeleteAtom(BOOLEAN Local, ATOM Atom)
BOOL WINAPI InitAtomTable(DWORD nSize)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
NTSTATUS NTAPI NtAddAtom(IN PWSTR AtomName, IN ULONG AtomNameLength, OUT PRTL_ATOM Atom)
ATOM WINAPI AddAtomA(LPCSTR lpString)
ATOM WINAPI GlobalFindAtomA(LPCSTR lpString)
PRTL_ATOM_TABLE BaseLocalAtomTable
struct _ATOM_BASIC_INFORMATION ATOM_BASIC_INFORMATION
NTSTATUS NTAPI RtlCreateAtomTable(IN ULONG TableSize, IN OUT PRTL_ATOM_TABLE *AtomTable)
struct atom_table ** PRTL_ATOM_TABLE
#define STATUS_OBJECT_NAME_NOT_FOUND
FORCEINLINE struct _TEB * NtCurrentTeb(VOID)
#define STATUS_BUFFER_OVERFLOW
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSTATUS NTAPI NtFindAtom(IN PWSTR AtomName, IN ULONG AtomNameLength, OUT PRTL_ATOM Atom)
ATOM WINAPI GlobalAddAtomW(LPCWSTR lpString)
UINT WINAPI InternalGetAtomName(BOOLEAN Local, BOOLEAN Unicode, ATOM Atom, LPSTR AtomName, DWORD Size)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
UINT WINAPI GlobalGetAtomNameA(ATOM nAtom, LPSTR lpBuffer, int nSize)
ATOM WINAPI FindAtomA(LPCSTR lpString)
NTSTATUS NTAPI RtlAddAtomToAtomTable(IN PRTL_ATOM_TABLE AtomTable, IN PWSTR AtomName, OUT PRTL_ATOM Atom)
NTSTATUS NTAPI RtlLookupAtomInAtomTable(IN PRTL_ATOM_TABLE AtomTable, IN PWSTR AtomName, OUT PRTL_ATOM Atom)
PVOID WINAPI InternalInitAtomTable(VOID)