Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

70 lines
1.5 KiB

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
viirplog.h
Abstract:
This header defines the internal prototypes and constants required for
managing irp logs. The file is meant to be included by vfirplog.c only.
Author:
Adrian J. Oney (adriao) 20-Feb-2002
--*/
//#define MAX_INSTANCE_COUNT 10
#define IRPLOG_FLAG_FULL 0x00000001
#define IRPLOG_FLAG_NAMELESS 0x00000002
#define IRPLOG_FLAG_DELETED 0x00000004
enum {
DDILOCK_UNREGISTERED,
DDILOCK_REGISTERING,
DDILOCK_REGISTERED
};
typedef struct {
LOGICAL Locked;
LIST_ENTRY ListHead;
} IRPLOG_HEAD, *PIRPLOG_HEAD;
typedef struct {
PDEVICE_OBJECT DeviceObject;
LIST_ENTRY HashLink;
ULONG Flags;
DEVICE_TYPE DeviceType;
ULONG MaximumElementCount;
ULONG Head;
IRPLOG_SNAPSHOT SnapshotArray[1];
} IRPLOG_DATA, *PIRPLOG_DATA;
#define VI_IRPLOG_DATABASE_HASH_SIZE 1
#define VI_IRPLOG_DATABASE_HASH_PRIME 0
#define VI_IRPLOG_CALCULATE_DATABASE_HASH(DeviceObject) \
(((((UINT_PTR) DeviceObject)/(PAGE_SIZE*2))*VI_IRPLOG_DATABASE_HASH_PRIME) % VI_IRPLOG_DATABASE_HASH_SIZE)
PIRPLOG_DATA
FASTCALL
ViIrpLogDatabaseFindPointer(
IN PDEVICE_OBJECT DeviceObject,
OUT PIRPLOG_HEAD *HashHead
);
VOID
ViIrpLogExposeWmiCallback(
IN PVOID Context
);