extern "C" {
#endif
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define TAG_ISAPNP TAG('I', 'P', 'N', 'P')
+#define TAG_ISAPNP 'PNPI'
#define IO_RESOURCE_REQUIRED 0x00 //ROS Extension
#include <stdio.h>
#include <ntddk.h>
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define TAG_PCI TAG('P', 'C', 'I', '0')
+#define TAG_PCI '0ICP'
typedef struct _PCI_DEVICE
{
-#define TAG_THDD TAG('t', 'h', 'd', 'd')
-#define TAG_GINI TAG('G', 'i', 'n', 'i')
+#define TAG_THDD 'ddht'
+#define TAG_GINI 'iniG'
ULONG LastOffset;
} CCB, *PCCB;
-#ifndef TAG
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#endif
-
-#define TAG_CCB TAG('I', 'C', 'C', 'B')
-#define TAG_FCB TAG('I', 'F', 'C', 'B')
+#define TAG_CCB 'BCCI'
+#define TAG_FCB 'BCFI'
typedef struct
{
}
#ifdef EXT2_POOL_WITH_TAG
- #define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
#define Ext2AllocatePool(PoolType,NumberOfBytes) \
- ExAllocatePoolWithTag( PoolType, NumberOfBytes, TAG ( 'E','x','t','2' ) )
+ ExAllocatePoolWithTag( PoolType, NumberOfBytes, '2txE' )
#else
#define Ext2AllocatePool(PoolType,NumberOfBytes) \
ExAllocatePool( PoolType, NumberOfBytes )
/* -------------------------------------------------------- DEFINES */
-#define TAG_FCB TAG('V', 'F', 'C', 'B')
+#define TAG_FCB 'BCFV'
/* -------------------------------------------------------- PUBLICS */
UNICODE_STRING SearchPattern;
} VFATCCB, *PVFATCCB;
-#ifndef TAG
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#endif
-
-#define TAG_CCB TAG('V', 'C', 'C', 'B')
-#define TAG_FCB TAG('V', 'F', 'C', 'B')
-#define TAG_IRP TAG('V', 'I', 'R', 'P')
-#define TAG_VFAT TAG('V', 'F', 'A', 'T')
+#define TAG_CCB 'BCCV'
+#define TAG_FCB 'BCFV'
+#define TAG_IRP 'PRIV'
+#define TAG_VFAT 'TAFV'
#define ENTRIES_PER_SECTOR (BLOCKSIZE / sizeof(FATDirEntry))
#include <debug.h>
#include <pseh/pseh2.h>
-#ifndef TAG
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#endif
-
#include <fat.h>
#include <fatstruc.h>
#define Add2Ptr(P,I,T) ((T)((PUCHAR)(P) + (I)))
#define PtrOffset(B,O) ((ULONG)((ULONG_PTR)(O) - (ULONG_PTR)(B)))
-#ifndef TAG
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#endif
-
-#define TAG_CCB TAG('V', 'C', 'C', 'B')
-#define TAG_FCB TAG('V', 'F', 'C', 'B')
-#define TAG_IRP TAG('V', 'I', 'R', 'P')
-#define TAG_VFAT TAG('V', 'F', 'A', 'T')
+#define TAG_CCB 'BCCV'
+#define TAG_FCB 'BCFV'
+#define TAG_IRP 'PRIV'
+#define TAG_VFAT 'TAFV'
/* ------------------------------------------------------ shutdown.c */
DRIVER_DISPATCH FatShutdown;
//
// Tag for memory allocations
//
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define FSREC_TAG TAG('F', 's', 'R', 'c')
+#define FSREC_TAG 'cRsF'
//
// UDFS Offsets
#ifndef MUP_H
#define MUP_H
-#ifndef TAG
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#endif
-
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
IoCompleteRequest(Irp, IO_NO_INCREMENT);
if (IrpContext)
- ExFreePoolWithTag(IrpContext, TAG('N', 'I', 'R', 'P'));
+ ExFreePoolWithTag(IrpContext, 'PRIN');
IoSetTopLevelIrp(NULL);
FsRtlExitFileSystem();
IoCompleteRequest(Irp, IO_NO_INCREMENT);
if (IrpContext)
- ExFreePoolWithTag(IrpContext, TAG('N', 'I', 'R', 'P'));
+ ExFreePoolWithTag(IrpContext, 'PRIN');
IoSetTopLevelIrp(NULL);
FsRtlExitFileSystem();
/* MACROS *******************************************************************/
-#define TAG_FCB TAG('I', 'F', 'C', 'B')
+#define TAG_FCB 'BCFI'
TRACE_(NTFS, "NtfsAllocateIrpContext()\n");
- IrpContext = (PNTFS_IRP_CONTEXT)ExAllocatePoolWithTag(NonPagedPool, sizeof(NTFS_IRP_CONTEXT), TAG('N', 'I', 'R', 'P'));
+ IrpContext = (PNTFS_IRP_CONTEXT)ExAllocatePoolWithTag(NonPagedPool, sizeof(NTFS_IRP_CONTEXT), 'PRIN');
if (IrpContext == NULL)
return NULL;
RtlZeroMemory(IrpContext, sizeof(NTFS_IRP_CONTEXT));
TRACE_(NTFS, "DriverEntry(%p, '%wZ')\n", DriverObject, RegistryPath);
/* Initialize global data */
- NtfsGlobalData = ExAllocatePoolWithTag(NonPagedPool, sizeof(NTFS_GLOBAL_DATA), TAG('N', 'D', 'R', 'G'));
+ NtfsGlobalData = ExAllocatePoolWithTag(NonPagedPool, sizeof(NTFS_GLOBAL_DATA), 'GRDN');
if (!NtfsGlobalData)
{
Status = STATUS_INSUFFICIENT_RESOURCES;
if (NtfsGlobalData)
{
ExDeleteResourceLite(&NtfsGlobalData->Resource);
- ExFreePoolWithTag(NtfsGlobalData, TAG('N', 'D', 'R', 'G'));
+ ExFreePoolWithTag(NtfsGlobalData, 'GRDN');
}
}
((pDeviceExt)->NtfsInfo.UCHARsPerCluster > PAGE_SIZE ? \
(pDeviceExt)->NtfsInfo.UCHARsPerCluster : PAGE_SIZE)
-#ifndef TAG
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#endif
-
-#define TAG_NTFS TAG('N', 'T', 'F', 'S')
+#define TAG_NTFS 'SFTN'
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
} NTFS_INFO, *PNTFS_INFO;
-#define NTFS_TYPE_CCB TAG('F','S',0,2)
-#define NTFS_TYPE_FCB TAG('F','S',0,3)
-#define NTFS_TYPE_VCB TAG('F','S',0,5)
-#define NTFS_TYPE_IRP_CONTEST TAG('F','S',0,6)
-#define NTFS_TYPE_GLOBAL_DATA TAG('F','S',0,7)
+#define NTFS_TYPE_CCB '20SF'
+#define NTFS_TYPE_FCB '30SF'
+#define NTFS_TYPE_VCB '50SF'
+#define NTFS_TYPE_IRP_CONTEST '60SF'
+#define NTFS_TYPE_GLOBAL_DATA '70SF'
typedef struct
{
ULONG LastOffset;
} NTFS_CCB, *PNTFS_CCB;
-#define TAG_CCB TAG('I', 'C', 'C', 'B')
+#define TAG_CCB 'BCCI'
typedef struct
{
* Structures
* --------------------------------------------------*/
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define I8042PRT_TAG TAG('8', '0', '4', '2')
+#define I8042PRT_TAG '2408'
typedef enum
{
/* FUNCTIONS *****************************************************************/
-/* Debug stuff */
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-
static VOID NTAPI
i8042DebugWorkItem(
IN PDEVICE_OBJECT DeviceObject,
/* We hope kernel would understand this. If
* that's not the case, nothing would happen.
*/
- KdSystemDebugControl(TAG('R', 'o', 's', ' '), Key, 0, NULL, 0, NULL, KernelMode);
+ KdSystemDebugControl(' soR', Key, 0, NULL, 0, NULL, KernelMode);
}
/*
#define MIN(a, b) ((a) < (b) ? (a) : (b))
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define CLASS_TAG TAG('K', 'b', 'd', 'C')
+#define CLASS_TAG 'CdbK'
#define DPFLTR_CLASS_NAME_ID DPFLTR_KBDCLASS_ID
typedef enum
#define MIN(a, b) ((a) < (b) ? (a) : (b))
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define CLASS_TAG TAG('M', 'o', 'u', 'C')
+#define CLASS_TAG 'CuoM'
#define DPFLTR_CLASS_NAME_ID DPFLTR_MOUCLASS_ID
typedef enum
#include <ntddmou.h>
#include <debug.h>
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define SERMOUSE_TAG TAG('S', 'M', 'o', 'u')
+#define SERMOUSE_TAG 'uoMS'
typedef enum
{
#include "ksiface.h"
#include "kstypes.h"
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define TAG_KSDEVICE TAG('K', 'S', 'E', 'D')
-#define TAG_KSOBJECT_TAG TAG('K', 'S', 'O', 'H')
+#define TAG_KSDEVICE 'DESK'
+#define TAG_KSOBJECT_TAG 'HOSK'
NTSTATUS
NTAPI
#include "ksiface.h"
-#define TAG_DEVICE_HEADER TAG('H','D','S','K')
+#define TAG_DEVICE_HEADER 'KSDH'
#define DEFINE_KSPROPERTY_PINPROPOSEDATAFORMAT(PinSet,\
PropGeneral, PropInstances, PropIntersection)\
#define NDEBUG
#include <sndblst.h>
-#define TAG(A, B, C, D) (IN ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
/*
IRP DISPATCH ROUTINES
ExFreePool(ptr)
-#define TAG_REG_INFO TAG('I','g','e','R')
-#define TAG_REG_NAME TAG('N','g','e','R')
+#define TAG_REG_INFO 'RegI'
+#define TAG_REG_NAME 'RegN'
NTSTATUS NTAPI
EnumerateSubkey(
#define BREAKPOINT
#endif
-#ifndef TAG
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#endif
-
/* memory pool tag */
-#define PCNET_TAG TAG('P', 'c', 'N', 't')
+#define PCNET_TAG 'tNcP'
#endif // _PCNET_H_
/* the version of NDIS we claim to be */
#define NDIS_VERSION 0x00050000
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
#define NDIS_TAG 0x4e4d4953
#define MIN(value1, value2) \
* Gain the access to the miniport data structure first.
*/
- MiniportPtr = IoGetDriverObjectExtension(DriverObject, (PVOID)TAG('D','I','M','N'));
+ MiniportPtr = IoGetDriverObjectExtension(DriverObject, (PVOID)'NMID');
if (MiniportPtr == NULL)
{
NDIS_DbgPrint(MIN_TRACE, ("Can't get driver object extension.\n"));
* structure in the driver extension or what?
*/
- Status = IoAllocateDriverObjectExtension(Miniport->DriverObject, (PVOID)TAG('D','I','M','N'),
+ Status = IoAllocateDriverObjectExtension(Miniport->DriverObject, (PVOID)'NMID',
sizeof(PNDIS_M_DRIVER_BLOCK), (PVOID*)&MiniportPtr);
if (!NT_SUCCESS(Status))
{
*/
#define AddrInitIPv4(IPAddress, RawAddress) \
{ \
- INIT_TAG((IPAddress), TAG('I','P','V','4')); \
+ INIT_TAG((IPAddress), '4VPI'); \
(IPAddress)->Type = IP_ADDRESS_V4; \
(IPAddress)->Address.IPv4Address = (RawAddress); \
}
#include <debug.h>
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define TAG_STRING TAG('S', 'T', 'R', ' ') /* string */
+#define TAG_STRING ' RTS' /* string */
/* Define _NTTEST_ to make test version. Device names are prefixed with
'NT' to allow the driver to run side by side with MS TCP/IP driver */
#include <stdio.h>
#include <debug.h>
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-
typedef enum
{
dsStopped,
UNICODE_STRING CompatibleIds; // REG_MULTI_SZ
} PDO_DEVICE_EXTENSION, *PPDO_DEVICE_EXTENSION;
-#define SERENUM_TAG TAG('S', 'e', 'r', 'e')
+#define SERENUM_TAG 'ereS'
/* Flags */
#define FLAG_ENUMERATION_DONE 0x01
#include <stdio.h>
#include <debug.h>
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-
/* See winbase.h */
#define PST_RS232 1
#define COMMPROP_INITIALIZED 0xE73CF52E
BOOLEAN ReadAtLeastOneByte;
} WORKITEM_DATA, *PWORKITEM_DATA;
-#define SERIAL_TAG TAG('S', 'e', 'r', 'l')
+#define SERIAL_TAG 'lreS'
#define INFINITE ((ULONG)-1)
#include <stdio.h>
#include <stdlib.h>
-#ifndef TAG
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#endif
-
-#define TAG_BLUE TAG('B', 'L', 'U', 'E')
+#define TAG_BLUE 'EULB'
typedef struct _CFHEADER
{
//#define NDEBUG
#include <debug.h>
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-
#ifdef ALLOC_PRAGMA
#pragma alloc_text(PAGE, ScsiClassGetInquiryData)
#pragma alloc_text(PAGE, ScsiClassInitialize)
NULL,
NonPagedPoolMustSucceed,
SCSI_REQUEST_BLOCK_SIZE,
- TAG('H','s','c','S'),
+ 'ScsH',
(USHORT)NumberElements);
}
Length = GuidString.Length + 32;
Buffer = ExAllocatePoolWithTag(NonPagedPool,
Length,
- TAG('R', 'a', 'm', 'd'));
+ 'dmaR');
if (!Buffer)
{
//
SymbolicLinkName.Length = GuidString.Length + 34;
Buffer = ExAllocatePoolWithTag(NonPagedPool,
SymbolicLinkName.MaximumLength,
- TAG('R', 'a', 'm', 'd'));
+ 'dmaR');
SymbolicLinkName.Buffer = Buffer;
if (Buffer)
{
DiskLength = Input->DiskLength;
ExInitializeFastMutex(&DriveExtension->DiskListLock);
IoInitializeRemoveLock(&DriveExtension->RemoveLock,
- TAG('R', 'a', 'm', 'd'),
+ 'dmaR',
0,
1);
DriveExtension->DriveDeviceName = DeviceName;
Objects) +
FinalCount *
sizeof(PDEVICE_OBJECT),
- TAG('R', 'a', 'm', 'd'));
+ 'dmaR');
if (!OurDeviceRelations)
{
//
DeviceExtension->Type = RamdiskBus;
ExInitializeFastMutex(&DeviceExtension->DiskListLock);
IoInitializeRemoveLock(&DeviceExtension->RemoveLock,
- TAG('R', 'a', 'm', 'd'),
+ 'dmaR',
0,
1);
InitializeListHead(&DeviceExtension->DiskList);
DriverRegistryPath.Buffer = ExAllocatePoolWithTag(PagedPool,
RegistryPath->Length +
sizeof(WCHAR),
- TAG('R', 'a', 'm', 'd'));
+ 'dmaR');
if (!DriverRegistryPath.Buffer) return STATUS_INSUFFICIENT_RESOURCES;
RtlCopyUnicodeString(&DriverRegistryPath, RegistryPath);
#undef ExAllocatePool
#endif
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define TAG_UNIATA TAG('a', 't', 'a', 'U')
+#define TAG_UNIATA 'Uata'
#define ExAllocatePool(a,b) ExAllocatePoolWithTag(a,b,TAG_UNIATA)
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
#endif
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define TAG_SCSIPORT TAG('S', 'C', 'S', 'I')
+#define TAG_SCSIPORT 'ISCS'
/* Defines how many logical unit arrays will be in a device extension */
#define LUS_NUMBER 8
DDPIXELFORMAT ddpfDisplay;
} PDEV, *PPDEV;
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-
#define DEVICE_NAME L"framebuf"
-#define ALLOC_TAG TAG('F','B','U','F')
+#define ALLOC_TAG 'FUBF'
DHPDEV APIENTRY
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-
#define DEVICE_NAME L"framebuf"
-#define ALLOC_TAG TAG('F','B','U','F')
+#define ALLOC_TAG 'FUBF'
DHPDEV APIENTRY
/***********************************************************/
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-
#define DS_SOLIDBRUSH 0x00000001
#define DS_GREYBRUSH 0x00000002
#define DS_BRUSH 0x00000004
BOOL DeinitVGA(PPDEV ppdev); // screen.c: Free resources allocated in InitVGA
#define DRIVER_EXTRA_SIZE 0
-#define ALLOC_TAG TAG('D', 'v', 'g', 'a') // Dvga tag
+#define ALLOC_TAG 'agvD' // Dvga tag
#define DLL_NAME L"vga" // DLL name in Unicode
#define MAX_SCAN_WIDTH 2048 // pixels
#define NDEBUG
#include <debug.h>
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define TAG_FREETYPE TAG('F', 'T', 'Y', 'P')
+#define TAG_FREETYPE 'PYTF'
/*
* First some generic routines
#include "ntddvdeo.h"
#include "video.h"
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define TAG_VBE TAG('V', 'B', 'E', ' ')
+#define TAG_VBE ' EBV'
/*
* Compile-time define to get VBE 1.2 support. The implementation
ExAllocatePoolWithTag(
PagedPool,
DriverExtension->RegistryPath.MaximumLength,
- TAG('U', 'S', 'T', 'R'));
+ 'RTSU');
if (DriverExtension->RegistryPath.Buffer == NULL)
{
RtlInitUnicodeString(&DriverExtension->RegistryPath, NULL);
#include <debug.h>
-#define TAG_VIDEO_PORT TAG('V', 'I', 'D', 'P')
-#define TAG_VIDEO_PORT_BUFFER TAG('V', 'p', 'm', '\0' )
+#define TAG_VIDEO_PORT 'PDIV'
+#define TAG_VIDEO_PORT_BUFFER '\0mpV'
typedef struct _VIDEO_PORT_ADDRESS_MAPPING
{
#include <math.h>
#include <intrin.h>
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define TAG_PORTCLASS TAG('P', 'C', 'L', 'S')
+#define TAG_PORTCLASS 'SLCP'
#define ASSERT_IRQL(x) ASSERT(KeGetCurrentIrql() <= (x))
#define MAX_MAP_REGISTERS 64
-#define TAG_DMA TAG('D','M','A',' ')
+#define TAG_DMA ' AMD'
/* FUNCTIONS *****************************************************************/
/* Allocate the return structure */
PciRegistryInfo = ExAllocatePoolWithTag(NonPagedPool,
sizeof(PCI_REGISTRY_INFO_INTERNAL),
- TAG('H', 'a', 'l', ' '));
+ ' laH');
if (!PciRegistryInfo) return NULL;
/* Fill it out */
#define MAX_MAP_REGISTERS 64
-#define TAG_DMA TAG('D','M','A',' ')
+#define TAG_DMA ' AMD'
/* FUNCTIONS *****************************************************************/
PagedPool,
sizeof(CM_RESOURCE_LIST) +
(ResourceCount - 1) * sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR),
- TAG('H','a','l',' '));
+ ' laH');
if (NULL == *AllocatedResources)
return STATUS_NO_MEMORY;
/* Allocate the return structure */
PciRegistryInfo = ExAllocatePoolWithTag(NonPagedPool,
sizeof(PCI_REGISTRY_INFO_INTERNAL),
- TAG('H', 'a', 'l', ' '));
+ ' laH');
if (!PciRegistryInfo) return NULL;
/* Fill it out */
#ifndef STDUNK_H\r
#define STDUNK_H\r
\r
-#define STDUNK_TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))\r
-\r
#include <punknown.h>\r
\r
/* ===============================================================\r
STD_CREATE_BODY_WITH_TAG_(classname, unknown, outer_unknown, pool_type, tag, PUNKNOWN)\r
\r
#define STD_CREATE_BODY_(classname, unknown, outer_unknown, pool_type, base) \\r
- STD_CREATE_BODY_WITH_TAG_(classname, unknown, outer_unknown, pool_type, STDUNK_TAG('r','C','c','P'), base)\r
+ STD_CREATE_BODY_WITH_TAG_(classname, unknown, outer_unknown, pool_type, 'rCcP', base)\r
\r
#define STD_CREATE_BODY(classname, unknown, outer_unknown, pool_type) \\r
STD_CREATE_BODY_(classname, unknown, outer_unknown, pool_type, PUNKNOWN)\r
size_t size,\r
POOL_TYPE pool_type)\r
{\r
- return KCOM_New(size, pool_type, STDUNK_TAG ('w','N','c','P'));\r
+ return KCOM_New(size, pool_type, 'wNcP');\r
}\r
\r
inline PVOID\r
IN ULONG Length
);
-#define PCI_DATA_TAG TAG('P', 'C', 'I', ' ')
+#define PCI_DATA_TAG ' ICP'
#define PCI_DATA_VERSION 1
typedef struct _PCIBUSDATA
#define DBGKD_VERS_FLAG_HSS 0x0010
#define DBGKD_VERS_FLAG_PARTITIONS 0x0020
-#define KDBG_TAG TAG('K', 'D', 'B', 'G')
+#define KDBG_TAG 'GBDK'
typedef struct _DBGKD_GET_VERSION32
{
/* Allocate space for the buffer */
Buffer = ExAllocatePoolWithTag(PagedPool,
Dest->Length + sizeof(WCHAR),
- TAG('U', 'S', 'T', 'R'));
+ 'RTSU');
if (Buffer == NULL)
{
Status = STATUS_INSUFFICIENT_RESOURCES;
/* FIXME: Is this needed? */
RtlZeroMemory(IPPacket, sizeof(IP_PACKET));
- INIT_TAG(IPPacket, TAG('I','P','K','T'));
+ INIT_TAG(IPPacket, 'TKPI');
IPPacket->Free = DontFreePacket;
IPPacket->Type = Type;
return NULL;
}
- INIT_TAG(IF, TAG('F','A','C','E'));
+ INIT_TAG(IF, 'ECAF');
RtlZeroMemory(IF, sizeof(IP_INTERFACE));
NULL, /* Free routine */
0, /* Flags */
sizeof(IPDATAGRAM_REASSEMBLY), /* Size of each entry */
- TAG('I','P','D','R'), /* Tag */
+ 'RDPI', /* Tag */
0); /* Depth */
ExInitializeNPagedLookasideList(
NULL, /* Free routine */
0, /* Flags */
sizeof(IP_FRAGMENT), /* Size of each entry */
- TAG('I','P','F','G'), /* Tag */
+ 'GFPI', /* Tag */
0); /* Depth */
ExInitializeNPagedLookasideList(
NULL, /* Free routine */
0, /* Flags */
sizeof(IPDATAGRAM_HOLE), /* Size of each entry */
- TAG('I','P','H','L'), /* Tag */
+ 'LHPI', /* Tag */
0); /* Depth */
/* Start routing subsystem */
#if DBG
-#define TRACK_TAG TAG('T','r','C','K')
+#define TRACK_TAG 'KCrT'
static LIST_ENTRY AllocatedObjectsList;
static KSPIN_LOCK AllocatedObjectsLock;
return NULL;
}
- INIT_TAG(NCE, TAG('N','C','E',' '));
+ INIT_TAG(NCE, ' ECN');
NCE->Interface = Interface;
NCE->Address = *Address;
return NULL;
}
- INIT_TAG(Router, TAG('R','O','U','T'));
+ INIT_TAG(Router, 'TUOR');
RtlCopyMemory( &FIBE->NetworkAddress, NetworkAddress,
sizeof(FIBE->NetworkAddress) );
#define SMALL_SIZE 128
#define LARGE_SIZE 2048
-#define SIGNATURE_LARGE TAG('L','L','L','L')
-#define SIGNATURE_SMALL TAG('S','S','S','S')
-#define SIGNATURE_OTHER TAG('O','O','O','O')
-#define TCP_TAG TAG('T','C','P',' ')
+#define SIGNATURE_LARGE 'LLLL'
+#define SIGNATURE_SMALL 'SSSS'
+#define SIGNATURE_OTHER 'OOOO'
+#define TCP_TAG ' PCT'
static NPAGED_LOOKASIDE_LIST LargeLookasideList;
static NPAGED_LOOKASIDE_LIST SmallLookasideList;
NULL, /* Free routine */
0, /* Flags */
sizeof(TCP_SEGMENT), /* Size of each entry */
- TAG('T','C','P','S'), /* Tag */
+ 'SPCT', /* Tag */
0); /* Depth */
StartTimer();
UNICODE_STRING SearchPattern;
} VFATCCB, *PVFATCCB;
-#ifndef TAG
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#endif
-
-#define TAG_CCB TAG('V', 'C', 'C', 'B')
-#define TAG_FCB TAG('V', 'F', 'C', 'B')
-#define TAG_IRP TAG('V', 'I', 'R', 'P')
+#define TAG_CCB 'BCCV'
+#define TAG_FCB 'BCFV'
+#define TAG_IRP 'PRIV'
#define ENTRIES_PER_SECTOR (BLOCKSIZE / sizeof(FATDirEntry))
#define NDEBUG
#include <debug.h>
-#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24))
-#define TAG_ROSSYM TAG('R', 'S', 'Y', 'M')
+#define TAG_ROSSYM 'MYSR'
static PVOID
RosSymAllocMemKM(ULONG_PTR Size)
/* allocate and initialize the security descriptor */
AbsSD = RtlpAllocateMemory(sizeof(SECURITY_DESCRIPTOR),
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
if (AbsSD == NULL)
{
Status = STATUS_NO_MEMORY;
DaclSize = sizeof(ACL) + sizeof(ACE) +
RtlLengthSid(LocalSystemSid);
Dacl = RtlpAllocateMemory(DaclSize,
- TAG('S', 'e', 'A', 'c'));
+ 'cAeS');
if (Dacl == NULL)
{
Status = STATUS_NO_MEMORY;
if (Dacl != NULL)
{
RtlpFreeMemory(Dacl,
- TAG('S', 'e', 'A', 'c'));
+ 'cAeS');
}
if (AbsSD != NULL)
{
RtlpFreeMemory(AbsSD,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
}
}
/* allocate enough memory for the security descriptor */
RelSD = RtlpAllocateMemory(DescriptorSize,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
if (RelSD == NULL)
{
Status = STATUS_NO_MEMORY;
ASSERT(AbsSDSize > DescriptorSize);
AbsSD = RtlpAllocateMemory(DescriptorSize,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
if (AbsSD == NULL)
{
Status = STATUS_NO_MEMORY;
/* allocate enough memory for the new self-relative descriptor */
NewRelSD = RtlpAllocateMemory(RelSDSize,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
if (NewRelSD == NULL)
{
Status = STATUS_NO_MEMORY;
if (RelSD != NULL)
{
RtlpFreeMemory(RelSD,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
}
if (NewRelSD != NULL)
{
RtlpFreeMemory(NewRelSD,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
}
#ifdef _WIN64
if (AbsSDAllocated)
{
RtlpFreeMemory(AbsSD,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
}
#endif
ASSERT(SecurityDescriptor->Dacl != NULL);
RtlpFreeMemory(SecurityDescriptor->Dacl,
- TAG('S', 'e', 'A', 'c'));
+ 'cAeS');
RtlpFreeMemory(SecurityDescriptor,
- TAG('S', 'e', 'S', 'd'));
+ 'dSeS');
RtlFreeSid(SystemSid);
}
#define NDEBUG
#include <debug.h>
-#define TAG_RTLREGISTRY TAG('R', 'q', 'r', 'v')
+#define TAG_RTLREGISTRY 'vrqR'
extern SIZE_T RtlpAllocDeallocQueryBufferSize;
IN ULONG Service);
/* Tags for the String Allocators */
-#define TAG_USTR TAG('U', 'S', 'T', 'R')
-#define TAG_ASTR TAG('A', 'S', 'T', 'R')
-#define TAG_OSTR TAG('O', 'S', 'T', 'R')
+#define TAG_USTR 'RTSU'
+#define TAG_ASTR 'RTSA'
+#define TAG_OSTR 'RTSO'
/* Timer Queue */
#define NDEBUG
#include <debug.h>
-#define TAG_SID TAG('p', 'S', 'i', 'd')
+#define TAG_SID 'diSp'
/* FUNCTIONS ***************************************************************/
#define NDEBUG
#include <debug.h>
-#define TAG_ENG TAG('E', 'n', 'g', ' ')
+#define TAG_ENG ' gnE'
/* PUBLIC FUNCTIONS **********************************************************/
#ifndef _WIN32K_TAGS_H
#define _WIN32K_TAGS_H
-#define TAG_STRING TAG('S', 'T', 'R', ' ') /* string */
-#define TAG_RTLREGISTRY TAG('R', 'q', 'r', 'v') /* RTL registry */
+#define TAG_STRING ' RTS' /* string */
+#define TAG_RTLREGISTRY 'vrqR' /* RTL registry */
/* ntuser */
-#define TAG_MOUSE TAG('M', 'O', 'U', 'S') /* mouse */
-#define TAG_KEYBOARD TAG('K', 'B', 'D', ' ') /* keyboard */
-#define TAG_ACCEL TAG('A', 'C', 'C', 'L') /* accelerator */
-#define TAG_HOOK TAG('W', 'N', 'H', 'K') /* hook */
-#define TAG_HOTKEY TAG('H', 'O', 'T', 'K') /* hotkey */
-#define TAG_MENUITEM TAG('M', 'E', 'N', 'I') /* menu item */
-#define TAG_MSG TAG('M', 'E', 'S', 'G') /* message */
-#define TAG_MSGQ TAG('M', 'S', 'G', 'Q') /* message queue */
-#define TAG_USRMSG TAG('U', 'M', 'S', 'G') /* user message */
-#define TAG_WNDPROP TAG('W', 'P', 'R', 'P') /* window property */
-#define TAG_WNAM TAG('W', 'N', 'A', 'M') /* window name */
-#define TAG_WINLIST TAG('W', 'N', 'L', 'S') /* window handle list */
-#define TAG_WININTLIST TAG('W', 'N', 'I', 'P') /* window internal pos */
-#define TAG_WINPROCLST TAG('W', 'N', 'P', 'L') /* window proc list */
-#define TAG_SBARINFO TAG('S', 'B', 'I', 'N') /* scrollbar info */
-#define TAG_TIMER TAG('T', 'I', 'M', 'R') /* timer entry */
-#define TAG_TIMERTD TAG('T', 'I', 'M', 'T') /* timer thread dereference list */
-#define TAG_TIMERBMP TAG('T', 'I', 'M', 'B') /* timers bitmap */
-#define TAG_CALLBACK TAG('C', 'B', 'C', 'K') /* callback memory */
-#define TAG_WINSTA TAG('W', 'S', 'T', 'A') /* window station */
-#define TAG_PDCE TAG('U', 's', 'd', 'c') /* dce */
-#define TAG_INPUT TAG('U', 's', 's', 'y') /* Input */
+#define TAG_MOUSE 'SUOM' /* mouse */
+#define TAG_KEYBOARD ' DBK' /* keyboard */
+#define TAG_ACCEL 'LCCA' /* accelerator */
+#define TAG_HOOK 'KHNW' /* hook */
+#define TAG_HOTKEY 'KTOH' /* hotkey */
+#define TAG_MENUITEM 'INEM' /* menu item */
+#define TAG_MSG 'GSEM' /* message */
+#define TAG_MSGQ 'QGSM' /* message queue */
+#define TAG_USRMSG 'GSMU' /* user message */
+#define TAG_WNDPROP 'PRPW' /* window property */
+#define TAG_WNAM 'MANW' /* window name */
+#define TAG_WINLIST 'SLNW' /* window handle list */
+#define TAG_WININTLIST 'PINW' /* window internal pos */
+#define TAG_WINPROCLST 'LPNW' /* window proc list */
+#define TAG_SBARINFO 'NIBS' /* scrollbar info */
+#define TAG_TIMER 'RMIT' /* timer entry */
+#define TAG_TIMERTD 'TMIT' /* timer thread dereference list */
+#define TAG_TIMERBMP 'BMIT' /* timers bitmap */
+#define TAG_CALLBACK 'KCBC' /* callback memory */
+#define TAG_WINSTA 'ATSW' /* window station */
+#define TAG_PDCE 'cdsU' /* dce */
+#define TAG_INPUT 'yssU' /* Input */
/* gdi objects from the handle table */
-#define TAG_DC TAG('G', 'l', 'a', '1') /* dc */
-#define TAG_REGION TAG('G', 'l', 'a', '4') /* region */
-#define TAG_SURFACE TAG('G', 'l', 'a', '5') /* bitmap */
-#define TAG_CLIENTOBJ TAG('G', 'h', '0', '6')
-#define TAG_PATH TAG('G', 'h', '0', '7')
-#define TAG_PALETTE TAG('G', 'l', 'a', '8')
-#define TAG_ICMLCS TAG('G', 'h', '0', '9')
-#define TAG_LFONT TAG('G', 'l', 'a', ':')
-#define TAG_RFONT TAG('G', 'h', '0', ';') /* correct? */
-#define TAG_PFE TAG('G', 'h', '0', '<')
-#define TAG_PFT TAG('G', 'h', '0', '=') /* correct? */
-#define TAG_ICMCXF TAG('G', 'h', '0', '>') /* correct? */
-#define TAG_SPRITE TAG('G', 'h', '0', '?') /* correct? */
-#define TAG_BRUSH TAG('G', 'l', 'a', '@')
-#define TAG_UMPD TAG('G', 'h', '0', 'A') /* correct? */
-#define TAG_SPACE TAG('G', 'h', '0', 'C') /* correct? */
-#define TAG_META TAG('G', 'h', '0', 'E') /* correct? */
-#define TAG_EFSTATE TAG('G', 'h', '0', 'F') /* correct? */
-#define TAG_BMFD TAG('G', 'h', '0', 'G') /* correct? */
-#define TAG_VTFD TAG('G', 'h', '0', 'H') /* correct? */
-#define TAG_TTFD TAG('G', 'h', '0', 'I') /* correct? */
-#define TAG_RC TAG('G', 'h', '0', 'J') /* correct? */
-#define TAG_TEMP TAG('G', 'h', '0', 'K') /* correct? */
-#define TAG_DRVOBJ TAG('G', 'h', '0', 'L') /* correct? */
-#define TAG_DCIOBJ TAG('G', 'h', '0', 'M') /* correct? */
-#define TAG_SPOOL TAG('G', 'h', '0', 'N') /* correct? */
+#define TAG_DC '1alG' /* dc */
+#define TAG_REGION '4alG' /* region */
+#define TAG_SURFACE '5alG' /* bitmap */
+#define TAG_CLIENTOBJ '60hG'
+#define TAG_PATH '70hG'
+#define TAG_PALETTE '8alG'
+#define TAG_ICMLCS '90hG'
+#define TAG_LFONT ':alG'
+#define TAG_RFONT ';0gG' /* correct? */
+#define TAG_PFE '<0hG'
+#define TAG_PFT '=0hG' /* correct? */
+#define TAG_ICMCXF '>0hG' /* correct? */
+#define TAG_SPRITE '?0hG' /* correct? */
+#define TAG_BRUSH '@alG'
+#define TAG_UMPD 'A0hG' /* correct? */
+#define TAG_SPACE 'c0hG' /* correct? */
+#define TAG_META 'E0hG' /* correct? */
+#define TAG_EFSTATE 'F0hG' /* correct? */
+#define TAG_BMFD 'G0hG' /* correct? */
+#define TAG_VTFD 'H0hG' /* correct? */
+#define TAG_TTFD 'I0hG' /* correct? */
+#define TAG_RC 'J0hG' /* correct? */
+#define TAG_TEMP 'K0hG' /* correct? */
+#define TAG_DRVOBJ 'L0hG' /* correct? */
+#define TAG_DCIOBJ 'M0hG' /* correct? */
+#define TAG_SPOOL 'N0hG' /* correct? */
/* other gdi objects */
-#define TAG_BEZIER TAG('B', 'E', 'Z', 'R') /* bezier */
-#define TAG_BITMAP TAG('B', 'T', 'M', 'P') /* bitmap */
-#define TAG_PATBLT TAG('P', 'B', 'L', 'T') /* patblt */
-#define TAG_CLIP TAG('C', 'L', 'I', 'P') /* clipping */
-#define TAG_COORD TAG('C', 'O', 'R', 'D') /* coords */
-#define TAG_GDIDEV TAG('G', 'd', 'e', 'v') /* gdi dev support*/
-#define TAG_GDIPDEV TAG('G', 'D', 'e', 'v') /* gdi PDev */
-#define TAG_GDIHNDTBLE TAG('G', 'D', 'I', 'H') /* gdi handle table */
-#define TAG_GDIICM TAG('G', 'i', 'c', 'm') /* gdi Icm */
-#define TAG_DIB TAG('D', 'I', 'B', ' ') /* dib */
-#define TAG_COLORMAP TAG('C', 'O', 'L', 'M') /* color map */
-#define TAG_SHAPE TAG('S', 'H', 'A', 'P') /* shape */
-#define TAG_PALETTEMAP TAG('P', 'A', 'L', 'M') /* palette mapping */
-#define TAG_PRINT TAG('P', 'R', 'N', 'T') /* print */
-#define TAG_GDITEXT TAG('T', 'X', 'T', 'O') /* text */
-#define TAG_PENSTYLES TAG('G', 's', 't', 'y') /* pen styles */
+#define TAG_BEZIER 'RZEB' /* bezier */
+#define TAG_BITMAP 'PMTB' /* bitmap */
+#define TAG_PATBLT 'TLBP' /* patblt */
+#define TAG_CLIP 'PILC' /* clipping */
+#define TAG_COORD 'DROC' /* coords */
+#define TAG_GDIDEV 'vedG' /* gdi dev support*/
+#define TAG_GDIPDEV 'veDG' /* gdi PDev */
+#define TAG_GDIHNDTBLE 'HIDG' /* gdi handle table */
+#define TAG_GDIICM 'mciG' /* gdi Icm */
+#define TAG_DIB ' BID' /* dib */
+#define TAG_COLORMAP 'MLOC' /* color map */
+#define TAG_SHAPE 'PAHS' /* shape */
+#define TAG_PALETTEMAP 'MLAP' /* palette mapping */
+#define TAG_PRINT 'TNRP' /* print */
+#define TAG_GDITEXT 'OTXT' /* text */
+#define TAG_PENSTYLES 'ytsG' /* pen styles */
/* Eng objects */
-#define TAG_CLIPOBJ TAG('C', 'L', 'P', 'O') /* clip object */
-#define TAG_DRIVEROBJ TAG('D', 'R', 'V', 'O') /* driver object */
-#define TAG_DFSM TAG('D', 'f', 's', 'm') /* Eng event allocation */
-#define TAG_EPATH TAG('G', 'p', 'a', 't') /* path object */
-#define TAG_FONT TAG('F', 'N', 'T', 'E') /* font entry */
-#define TAG_FONTOBJ TAG('G', 'f', 'n', 't') /* font object */
-#define TAG_WNDOBJ TAG('W', 'N', 'D', 'O') /* window object */
-#define TAG_XLATEOBJ TAG('X', 'L', 'A', 'O') /* xlate object */
-#define TAG_GSEM TAG('G', 's', 'e', 'm') /* Gdi Semaphore */
+#define TAG_CLIPOBJ 'OPLC' /* clip object */
+#define TAG_DRIVEROBJ 'OVRD' /* driver object */
+#define TAG_DFSM 'msfD' /* Eng event allocation */
+#define TAG_EPATH 'tapG' /* path object */
+#define TAG_FONT 'ETNF' /* font entry */
+#define TAG_FONTOBJ 'tnfG' /* font object */
+#define TAG_WNDOBJ 'ODNW' /* window object */
+#define TAG_XLATEOBJ 'OALX' /* xlate object */
+#define TAG_GSEM 'mesG' /* Gdi Semaphore */
/* misc */
-#define TAG_DRIVER TAG('G', 'D', 'R', 'V') /* video drivers */
-#define TAG_FNTFILE TAG('F', 'N', 'T', 'F') /* font file */
-#define TAG_SSECTPOOL TAG('S', 'S', 'C', 'P') /* shared section pool */
-#define TAG_PFF TAG('G', 'p', 'f', 'f') /* physical font file */
+#define TAG_DRIVER 'VRDG' /* video drivers */
+#define TAG_FNTFILE 'FTNF' /* font file */
+#define TAG_SSECTPOOL 'PCSS' /* shared section pool */
+#define TAG_PFF 'ffpG' /* physical font file */
/* Dx internal tags rember I do not known if it right namees */
-#define TAG_DXPVMLIST TAG('D', 'X', 'P', 'L') /* pmvlist for the driver */
-#define TAG_DXFOURCC TAG('D', 'X', 'F', 'O') /* pdwFourCC for the driver */
-#define TAG_DDRAW TAG('D', 'h', ' ', '1')
-#define TAG_DDSURF TAG('D', 'h', ' ', '2')
-#define TAG_EDDGBL TAG('E', 'D', 'D', 'G') /* ? edd_directdraw_global ??*/
+#define TAG_DXPVMLIST 'LPXD' /* pmvlist for the driver */
+#define TAG_DXFOURCC 'OFXD' /* pdwFourCC for the driver */
+#define TAG_DDRAW '1 hD'
+#define TAG_DDSURF '2 hD'
+#define TAG_EDDGBL 'GDDE' /* ? edd_directdraw_global ??*/
#endif /* _WIN32K_TAGS_H */
#include <include/engobjects.h>
-#define TAG_FINF TAG('F', 'I', 'N', 'F')
+#define TAG_FINF 'FNIF'
//
// EXSTROBJ flags.
//
/* FIXME - lock the process */
Win32Process = ExAllocatePoolWithTag(NonPagedPool,
sizeof(PROCESSINFO),
- TAG('W', '3', '2', 'p'));
+ 'p23W');
if (Win32Process == NULL) RETURN( STATUS_NO_MEMORY);
/* FIXME - lock the process */
Win32Thread = ExAllocatePoolWithTag(NonPagedPool,
sizeof(THREADINFO),
- TAG('W', '3', '2', 't'));
+ 't23W');
if (Win32Thread == NULL) RETURN( STATUS_NO_MEMORY);
#include <winsta.h>
-#define KeRosDumpStackFrames(Frames, Count) KdSystemDebugControl(TAG('R', 'o', 's', 'D'), (PVOID)Frames, Count, NULL, 0, NULL, KernelMode)
+#define KeRosDumpStackFrames(Frames, Count) KdSystemDebugControl('DsoR', (PVOID)Frames, Count, NULL, 0, NULL, KernelMode)
HBITMAP NTAPI UserLoadImage(PCWSTR);
BOOL NTAPI W32kDosPathNameToNtPathName(PCWSTR, PUNICODE_STRING);
SafeFileNames.MaximumLength = SafeFileNames.Length = cbStringSize - sizeof(WCHAR);
SafeFileNames.Buffer = ExAllocatePoolWithTag(PagedPool,
cbStringSize,
- TAG('R','T','S','U'));
+ 'RTSU');
if (!SafeFileNames.Buffer)
{
SetLastWin32Error(ERROR_NOT_ENOUGH_MEMORY);
{
SetLastNtError(Status);
/* Free the string buffer for the safe filename */
- ExFreePoolWithTag(SafeFileNames.Buffer,TAG('R','T','S','U'));
+ ExFreePoolWithTag(SafeFileNames.Buffer,'RTSU');
return FALSE;
}
}
/* Free the string for the safe filenames */
- ExFreePoolWithTag(SafeFileNames.Buffer,TAG('R','T','S','U'));
+ ExFreePoolWithTag(SafeFileNames.Buffer,'RTSU');
return bRet;
}
#ifdef GDI_DEBUG
-#define KeRosDumpStackFrames(Frames, Count) KdSystemDebugControl(TAG('R', 'o', 's', 'D'), (PVOID)Frames, Count, NULL, 0, NULL, KernelMode)
+#define KeRosDumpStackFrames(Frames, Count) KdSystemDebugControl('DsoR', (PVOID)Frames, Count, NULL, 0, NULL, KernelMode)
NTSYSAPI ULONG APIENTRY RtlWalkFrameChain(OUT PVOID *Callers, IN ULONG Count, IN ULONG Flags);
static int leak_reported = 0;