174 lines
2.9 KiB
C
174 lines
2.9 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 2000 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
iovutil.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This header exposes various utilities required to do driver verification.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Adrian J. Oney (adriao) 20-Apr-1998
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
Kernel mode
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
AdriaO 02/10/2000 - Seperated out from ntos\io\trackirp.h
|
||
|
|
||
|
--*/
|
||
|
|
||
|
typedef enum {
|
||
|
|
||
|
DATABASELOCKSTATE_HELD,
|
||
|
DATABASELOCKSTATE_NOT_HELD
|
||
|
|
||
|
} DATABASELOCKSTATE;
|
||
|
|
||
|
typedef enum {
|
||
|
|
||
|
DEVOBJ_RELATION_IDENTICAL,
|
||
|
DEVOBJ_RELATION_FIRST_IMMEDIATELY_ABOVE_SECOND,
|
||
|
DEVOBJ_RELATION_FIRST_IMMEDIATELY_BELOW_SECOND,
|
||
|
DEVOBJ_RELATION_FIRST_ABOVE_SECOND,
|
||
|
DEVOBJ_RELATION_FIRST_BELOW_SECOND,
|
||
|
DEVOBJ_RELATION_NOT_IN_SAME_STACK
|
||
|
|
||
|
} DEVOBJ_RELATION, *PDEVOBJ_RELATION;
|
||
|
|
||
|
typedef enum {
|
||
|
|
||
|
MARKTYPE_DELETED,
|
||
|
MARKTYPE_BOTTOM_OF_FDO_STACK,
|
||
|
MARKTYPE_DESIGNATED_FDO,
|
||
|
MARKTYPE_RAW_PDO,
|
||
|
MARKTYPE_DEVICE_CHECKED,
|
||
|
MARKTYPE_RELATION_PDO_EXAMINED
|
||
|
|
||
|
} MARK_TYPE;
|
||
|
|
||
|
VOID
|
||
|
FASTCALL
|
||
|
IovUtilInit(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
FASTCALL
|
||
|
IovUtilGetLowerDeviceObject(
|
||
|
IN PDEVICE_OBJECT UpperDeviceObject,
|
||
|
OUT PDEVICE_OBJECT *LowerDeviceObject
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
FASTCALL
|
||
|
IovUtilGetBottomDeviceObject(
|
||
|
IN PDEVICE_OBJECT DeviceObject,
|
||
|
OUT PDEVICE_OBJECT *BottomDeviceObject
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
FASTCALL
|
||
|
IovUtilGetUpperDeviceObject(
|
||
|
IN PDEVICE_OBJECT LowerDeviceObject,
|
||
|
OUT PDEVICE_OBJECT *UpperDeviceObject
|
||
|
);
|
||
|
|
||
|
BOOLEAN
|
||
|
FASTCALL
|
||
|
IovUtilIsVerifiedDeviceStack(
|
||
|
IN PDEVICE_OBJECT DeviceObject
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
FASTCALL
|
||
|
IovUtilFlushVerifierDriverListCache(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
FASTCALL
|
||
|
IovUtilFlushStackCache(
|
||
|
IN PDEVICE_OBJECT DeviceObject,
|
||
|
IN DATABASELOCKSTATE DatabaseLockState
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
IovUtilRelateDeviceObjects(
|
||
|
IN PDEVICE_OBJECT FirstDeviceObject,
|
||
|
IN PDEVICE_OBJECT SecondDeviceObject,
|
||
|
OUT DEVOBJ_RELATION *DeviceObjectRelation
|
||
|
);
|
||
|
|
||
|
BOOLEAN
|
||
|
IovUtilIsPdo(
|
||
|
IN PDEVICE_OBJECT DeviceObject
|
||
|
);
|
||
|
|
||
|
BOOLEAN
|
||
|
IovUtilIsWdmStack(
|
||
|
IN PDEVICE_OBJECT DeviceObject
|
||
|
);
|
||
|
|
||
|
BOOLEAN
|
||
|
FASTCALL
|
||
|
IovUtilHasDispatchHandler(
|
||
|
IN PDRIVER_OBJECT DriverObject,
|
||
|
IN UCHAR MajorFunction
|
||
|
);
|
||
|
|
||
|
BOOLEAN
|
||
|
FASTCALL
|
||
|
IovUtilIsInFdoStack(
|
||
|
IN PDEVICE_OBJECT DeviceObject
|
||
|
);
|
||
|
|
||
|
BOOLEAN
|
||
|
FASTCALL
|
||
|
IovUtilIsRawPdo(
|
||
|
IN PDEVICE_OBJECT DeviceObject
|
||
|
);
|
||
|
|
||
|
BOOLEAN
|
||
|
FASTCALL
|
||
|
IovUtilIsDesignatedFdo(
|
||
|
IN PDEVICE_OBJECT DeviceObject
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
FASTCALL
|
||
|
IovUtilMarkDeviceObject(
|
||
|
IN PDEVICE_OBJECT DeviceObject,
|
||
|
IN MARK_TYPE MarkType
|
||
|
);
|
||
|
|
||
|
BOOLEAN
|
||
|
FASTCALL
|
||
|
IovUtilIsDeviceObjectMarked(
|
||
|
IN PDEVICE_OBJECT DeviceObject,
|
||
|
IN MARK_TYPE MarkType
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
FASTCALL
|
||
|
IovUtilMarkStack(
|
||
|
IN PDEVICE_OBJECT PhysicalDeviceObject,
|
||
|
IN PDEVICE_OBJECT BottomOfFdoStack OPTIONAL,
|
||
|
IN PDEVICE_OBJECT FunctionalDeviceObject OPTIONAL,
|
||
|
IN BOOLEAN RawStack
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
FASTCALL
|
||
|
IovUtilWatermarkIrp(
|
||
|
IN PIRP Irp,
|
||
|
IN ULONG Flags
|
||
|
);
|
||
|
|