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.

93 lines
2.2 KiB

  1. //
  2. // Module: clock.h
  3. //
  4. // Description:
  5. //
  6. //
  7. //@@BEGIN_MSINTERNAL
  8. // Development Team:
  9. // Mike McLaughlin
  10. //
  11. // History: Date Author Comment
  12. //
  13. //@@END_MSINTERNAL
  14. //---------------------------------------------------------------------------
  15. //
  16. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  17. // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  18. // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  19. // PURPOSE.
  20. //
  21. // Copyright (c) 1996-1999 Microsoft Corporation. All Rights Reserved.
  22. //
  23. //---------------------------------------------------------------------------
  24. //---------------------------------------------------------------------------
  25. // Constants and Macros
  26. //---------------------------------------------------------------------------
  27. //---------------------------------------------------------------------------
  28. // Classes
  29. //---------------------------------------------------------------------------
  30. typedef class CClockInstance : public CInstance
  31. {
  32. public:
  33. CClockInstance(
  34. IN PPARENT_INSTANCE pParentInstance
  35. );
  36. static NTSTATUS
  37. ClockDispatchCreate(
  38. IN PDEVICE_OBJECT pDeviceObject,
  39. IN PIRP pIrp
  40. );
  41. static NTSTATUS
  42. ClockDispatchCreateKP(
  43. PCLOCK_INSTANCE pClockInstance,
  44. PKSCLOCK_CREATE pClockCreate
  45. );
  46. static NTSTATUS
  47. ClockDispatchIoControl(
  48. IN PDEVICE_OBJECT pDeviceObject,
  49. IN PIRP pIrp
  50. );
  51. static NTSTATUS
  52. ClockGetFunctionTable(
  53. IN PIRP pIrp,
  54. IN PKSPROPERTY pProperty,
  55. IN OUT PKSCLOCK_FUNCTIONTABLE pFunctionTable
  56. );
  57. static LONGLONG FASTCALL
  58. ClockGetTime(
  59. IN PFILE_OBJECT FileObject
  60. );
  61. static LONGLONG FASTCALL
  62. ClockGetPhysicalTime(
  63. IN PFILE_OBJECT FileObject
  64. );
  65. static LONGLONG FASTCALL
  66. ClockGetCorrelatedTime(
  67. IN PFILE_OBJECT FileObject,
  68. OUT PLONGLONG Time
  69. );
  70. static LONGLONG FASTCALL
  71. ClockGetCorrelatedPhysicalTime(
  72. IN PFILE_OBJECT FileObject,
  73. OUT PLONGLONG Time
  74. );
  75. private:
  76. KSCLOCK_FUNCTIONTABLE FunctionTable;
  77. DefineSignature(0x494b4c43); // CLKI
  78. } CLOCK_INSTANCE, *PCLOCK_INSTANCE;
  79. //---------------------------------------------------------------------------