Source code of Windows XP (NT5)
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.

119 lines
2.1 KiB

  1. /*++
  2. Copyright (c) 1998 Microsoft Corporation
  3. Module Name:
  4. ioverifier.h
  5. Abstract:
  6. This header contains or includes all the prototypes neccessary for the I/O
  7. subsystem specific portions of the driver verifier.
  8. Author:
  9. Adrian J. Oney (adriao) 28-Feb-1999
  10. Revision History:
  11. --*/
  12. #include "..\verifier\vfdef.h"
  13. #ifndef _IOVERIFIER_H_
  14. #define _IOVERIFIER_H_
  15. typedef struct _IOV_INIT_DATA {
  16. ULONG InitFlags;
  17. ULONG VerifierFlags;
  18. } IOV_INIT_DATA, *PIOV_INIT_DATA;
  19. #define IOVP_COMPLETE_REQUEST(Apc,Sa1,Sa2) \
  20. { \
  21. if (IopVerifierOn) \
  22. IovpCompleteRequest((Apc), (Sa1), (Sa2)); \
  23. }
  24. #define IOV_INITIALIZE_IRP(Irp, PacketSize, StackSize) \
  25. { \
  26. if (IopVerifierOn) \
  27. IovInitializeIrp((Irp), (PacketSize), (StackSize)); \
  28. }
  29. #define IOV_DELETE_DEVICE(DeviceObject) \
  30. { \
  31. if (IopVerifierOn) \
  32. IovDeleteDevice(DeviceObject); \
  33. }
  34. #define IOV_DETACH_DEVICE(DeviceObject) \
  35. { \
  36. if (IopVerifierOn) \
  37. IovDetachDevice(DeviceObject); \
  38. }
  39. #define IOV_ATTACH_DEVICE_TO_DEVICE_STACK(SourceDeviceObject, TargetDeviceObject) \
  40. { \
  41. if (IopVerifierOn) \
  42. IovAttachDeviceToDeviceStack((SourceDeviceObject), (TargetDeviceObject)); \
  43. }
  44. #define IOV_CANCEL_IRP(Irp, ReturnValue) \
  45. IovCancelIrp((Irp), (ReturnValue))
  46. #define IOV_UNLOAD_DRIVERS() \
  47. { \
  48. if (IopVerifierOn) \
  49. IovUnloadDrivers (); \
  50. }
  51. VOID
  52. IovpSpecialIrpVerifierInitWorker(
  53. IN PVOID Parameter
  54. );
  55. VOID
  56. IovpCompleteRequest(
  57. IN PKAPC Apc,
  58. IN PVOID *SystemArgument1,
  59. IN PVOID *SystemArgument2
  60. );
  61. VOID
  62. IovInitializeIrp(
  63. PIRP Irp,
  64. USHORT PacketSize,
  65. CCHAR StackSize
  66. );
  67. VOID
  68. IovAttachDeviceToDeviceStack(
  69. PDEVICE_OBJECT SourceDevice,
  70. PDEVICE_OBJECT TargetDevice
  71. );
  72. VOID
  73. IovDeleteDevice(
  74. PDEVICE_OBJECT DeleteDevice
  75. );
  76. VOID
  77. IovDetachDevice(
  78. PDEVICE_OBJECT TargetDevice
  79. );
  80. BOOLEAN
  81. IovCancelIrp(
  82. PIRP Irp,
  83. BOOLEAN *returnValue
  84. );
  85. NTSTATUS
  86. IovUnloadDrivers (
  87. VOID);
  88. #endif // _IOVERIFIER_H_