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.

90 lines
1.9 KiB

  1. /*++
  2. Copyright (c) 1989 Microsoft Corporation
  3. Module Name:
  4. lowio.h
  5. Abstract:
  6. This module defines all of the structures and prototypes for Low IO.
  7. Author:
  8. Joe Linn (JoeLinn) 8-17-94
  9. Revision History:
  10. --*/
  11. #ifndef _RXLOWIO_
  12. #define _RXLOWIO_
  13. #include "mrx.h" // mini redirector related definitions ....
  14. #ifndef WIN9X
  15. extern FAST_MUTEX RxLowIoPagingIoSyncMutex;
  16. #endif
  17. #define RxLowIoIsMdlLocked(MDL) ( \
  18. RxMdlIsLocked((MDL)) || RxMdlSourceIsNonPaged((MDL)) \
  19. )
  20. #define RxLowIoIsBufferLocked(LOWIOCONTEXT) \
  21. ( ((LOWIOCONTEXT)->Operation > LOWIO_OP_WRITE ) || \
  22. ((LOWIOCONTEXT)->ParamsFor.ReadWrite.Buffer == NULL) || \
  23. ( \
  24. ((LOWIOCONTEXT)->ParamsFor.ReadWrite.Buffer != NULL) && \
  25. RxLowIoIsMdlLocked(((LOWIOCONTEXT)->ParamsFor.ReadWrite.Buffer)) \
  26. ) \
  27. )
  28. typedef struct _LOWIO_PER_FCB_INFO {
  29. LIST_ENTRY PagingIoReadsOutstanding;
  30. LIST_ENTRY PagingIoWritesOutstanding;
  31. } LOWIO_PER_FCB_INFO, *PLOWIO_PER_FCB_INFO;
  32. PVOID
  33. NTAPI
  34. RxLowIoGetBufferAddress (
  35. IN PRX_CONTEXT RxContext
  36. );
  37. NTSTATUS
  38. NTAPI
  39. RxLowIoPopulateFsctlInfo (
  40. IN PRX_CONTEXT RxContext,
  41. IN PIRP Irp
  42. );
  43. NTSTATUS
  44. NTAPI
  45. RxLowIoSubmit (
  46. IN PRX_CONTEXT RxContext,
  47. IN PIRP Irp,
  48. IN PFCB Fcb,
  49. IN PLOWIO_COMPLETION_ROUTINE CompletionRoutine
  50. );
  51. NTSTATUS
  52. NTAPI
  53. RxLowIoCompletion (
  54. PRX_CONTEXT RxContext
  55. );
  56. VOID
  57. NTAPI
  58. RxInitializeLowIoContext (
  59. IN PRX_CONTEXT RxContext,
  60. IN ULONG Operation,
  61. OUT PLOWIO_CONTEXT LowIoContext
  62. );
  63. VOID
  64. RxInitializeLowIoPerFcbInfo (
  65. PLOWIO_PER_FCB_INFO LowIoPerFcbInfo
  66. );
  67. #endif // _RXLOWIO_
  68.