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.
|
|
/*++
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 );
|