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.

124 lines
2.8 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. vigeneric.h
  5. Abstract:
  6. This header contains private prototypes for verifying Generic IRPs are
  7. handled correctly. This file is meant to be included only by vfgeneric.c
  8. Author:
  9. Adrian J. Oney (adriao) 30-Jun-2000
  10. Environment:
  11. Kernel mode
  12. Revision History:
  13. --*/
  14. typedef enum {
  15. NOT_PROCESSED = 0,
  16. POSSIBLY_PROCESSED,
  17. DEFINITELY_PROCESSED
  18. } HOW_PROCESSED;
  19. VOID
  20. ViPnpVerifyMinorWasProcessedProperly(
  21. IN PIRP Irp,
  22. IN PIO_STACK_LOCATION IrpSp,
  23. IN VF_DEVOBJ_TYPE DevObjType,
  24. IN PVERIFIER_SETTINGS_SNAPSHOT VerifierSnapshot,
  25. IN HOW_PROCESSED HowProcessed,
  26. IN PVOID CallerAddress
  27. );
  28. VOID
  29. FASTCALL
  30. ViGenericDumpIrpStack(
  31. IN PIO_STACK_LOCATION IrpSp
  32. );
  33. VOID
  34. FASTCALL
  35. ViGenericVerifyNewRequest(
  36. IN PIOV_REQUEST_PACKET IovPacket,
  37. IN PDEVICE_OBJECT DeviceObject,
  38. IN PIO_STACK_LOCATION IrpLastSp OPTIONAL,
  39. IN PIO_STACK_LOCATION IrpSp,
  40. IN PIOV_STACK_LOCATION StackLocationData,
  41. IN PVOID CallerAddress OPTIONAL
  42. );
  43. VOID
  44. FASTCALL
  45. ViGenericVerifyIrpStackDownward(
  46. IN PIOV_REQUEST_PACKET IovPacket,
  47. IN PDEVICE_OBJECT DeviceObject,
  48. IN PIO_STACK_LOCATION IrpLastSp OPTIONAL,
  49. IN PIO_STACK_LOCATION IrpSp,
  50. IN PIOV_STACK_LOCATION RequestHeadLocationData,
  51. IN PIOV_STACK_LOCATION StackLocationData,
  52. IN PVOID CallerAddress OPTIONAL
  53. );
  54. VOID
  55. FASTCALL
  56. ViGenericVerifyIrpStackUpward(
  57. IN PIOV_REQUEST_PACKET IovPacket,
  58. IN PIO_STACK_LOCATION IrpSp,
  59. IN PIOV_STACK_LOCATION RequestHeadLocationData,
  60. IN PIOV_STACK_LOCATION StackLocationData,
  61. IN BOOLEAN IsNewlyCompleted,
  62. IN BOOLEAN RequestFinalized
  63. );
  64. BOOLEAN
  65. FASTCALL
  66. ViGenericIsValidIrpStatus(
  67. IN PIO_STACK_LOCATION IrpSp,
  68. IN NTSTATUS Status
  69. );
  70. BOOLEAN
  71. FASTCALL
  72. ViGenericIsNewRequest(
  73. IN PIO_STACK_LOCATION IrpLastSp OPTIONAL,
  74. IN PIO_STACK_LOCATION IrpSp
  75. );
  76. VOID
  77. FASTCALL
  78. ViGenericVerifyNewIrp(
  79. IN PIOV_REQUEST_PACKET IovPacket,
  80. IN PIRP Irp,
  81. IN PIO_STACK_LOCATION IrpSp,
  82. IN PIOV_STACK_LOCATION StackLocationData,
  83. IN PVOID CallerAddress OPTIONAL
  84. );
  85. VOID
  86. FASTCALL
  87. ViGenericVerifyFinalIrpStack(
  88. IN PIOV_REQUEST_PACKET IovPacket,
  89. IN PIO_STACK_LOCATION IrpSp
  90. );
  91. LOGICAL
  92. FASTCALL
  93. ViGenericBuildIrpLogEntry(
  94. IN PIRP Irp,
  95. IN ULONG CurrentCount,
  96. IN PIRPLOG_SNAPSHOT CurrentEntryArray,
  97. OUT PIRPLOG_SNAPSHOT IrpSnapshot
  98. );