125 lines
2.4 KiB
C
125 lines
2.4 KiB
C
/*++
|
|
|
|
Copyright (c) 1998 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
flunkirp.h
|
|
|
|
Abstract:
|
|
|
|
The module associated with this header asserts specific Irp types (eg PNP)
|
|
are handled correctly by drivers. Generic IRP assertion is done by the
|
|
trackirp.* bits.
|
|
|
|
Author:
|
|
|
|
Adrian J. Oney (adriao) 20-Apr-1998
|
|
|
|
Revision History:
|
|
|
|
|
|
*/
|
|
|
|
#ifndef _FLUNKIRP_H_
|
|
#define _FLUNKIRP_H_
|
|
|
|
#ifndef NO_SPECIAL_IRP
|
|
|
|
|
|
// These are in flunkirp.c
|
|
|
|
BOOLEAN
|
|
IovpAssertIsNewRequest(
|
|
IN PIO_STACK_LOCATION IrpLastSp,
|
|
IN PIO_STACK_LOCATION IrpSp
|
|
);
|
|
|
|
VOID
|
|
IovpAssertNewIrps(
|
|
IN PIOV_REQUEST_PACKET IrpTrackingData,
|
|
IN PIO_STACK_LOCATION IrpSp,
|
|
IN PIOV_STACK_LOCATION StackLocationData
|
|
);
|
|
|
|
VOID
|
|
IovpAssertNewRequest(
|
|
IN PIOV_REQUEST_PACKET IrpTrackingData,
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
IN PIO_STACK_LOCATION IrpLastSp OPTIONAL,
|
|
IN PIO_STACK_LOCATION IrpSp,
|
|
IN PIOV_STACK_LOCATION StackLocationData
|
|
);
|
|
|
|
BOOLEAN
|
|
IovpAssertDoAdvanceStatus(
|
|
IN PIO_STACK_LOCATION IrpSp,
|
|
IN NTSTATUS OriginalStatus,
|
|
IN OUT NTSTATUS *StatusToAdvance
|
|
);
|
|
|
|
VOID
|
|
IovpAssertIrpStackDownward(
|
|
IN PIOV_REQUEST_PACKET IrpTrackingData,
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
IN PIO_STACK_LOCATION IrpLastSp,
|
|
IN PIO_STACK_LOCATION IrpSp,
|
|
IN PIOV_STACK_LOCATION StackLocationData
|
|
);
|
|
|
|
VOID
|
|
IovpAssertIrpStackUpward(
|
|
IN PIOV_REQUEST_PACKET IrpTrackingData,
|
|
IN PIO_STACK_LOCATION IrpSp,
|
|
IN PIOV_STACK_LOCATION StackLocationData,
|
|
IN BOOLEAN IsNewlyCompleted,
|
|
IN BOOLEAN RequestFinalized
|
|
);
|
|
|
|
VOID
|
|
IovpAssertFinalIrpStack(
|
|
IN PIOV_REQUEST_PACKET IrpTrackingData,
|
|
IN PIO_STACK_LOCATION IrpSp
|
|
);
|
|
|
|
BOOLEAN
|
|
IovpAssertIsValidIrpStatus(
|
|
IN PIO_STACK_LOCATION IrpSp,
|
|
IN NTSTATUS Status
|
|
);
|
|
|
|
VOID
|
|
IovpThrowChaffAtStartedPdoStack(
|
|
IN PDEVICE_OBJECT DeviceObject
|
|
);
|
|
|
|
NTSTATUS
|
|
IovpThrowBogusSynchronousIrp(
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
IN PIO_STACK_LOCATION TopStackLocation,
|
|
IN OUT OPTIONAL ULONG_PTR Information,
|
|
IN OUT ULONG_PTR *InformationOut OPTIONAL,
|
|
IN BOOLEAN IsBogus
|
|
);
|
|
|
|
LONG
|
|
IovpStartObRefMonitoring(
|
|
IN PDEVICE_OBJECT DeviceObject
|
|
);
|
|
|
|
LONG
|
|
IovpStopObRefMonitoring(
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
IN LONG StartSkew
|
|
);
|
|
|
|
BOOLEAN
|
|
IovpIsSystemRestrictedIrp(
|
|
PIO_STACK_LOCATION IrpSp
|
|
);
|
|
|
|
#endif // NO_SPECIAL_IRP
|
|
|
|
#endif // _FLUNKIRP_H_
|
|
|