mirror of https://github.com/tongzx/nt5src
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.
173 lines
2.9 KiB
173 lines
2.9 KiB
/*++
|
|
|
|
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
|
|
);
|
|
|