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.

96 lines
2.7 KiB

  1. /******************************Module*Header*******************************\
  2. * Module Name: HELPERS.CXX *
  3. * *
  4. * Hydra routines *
  5. * For Display drivers *
  6. * *
  7. * Copyright (c) 1997-1999 Microsoft *
  8. \**************************************************************************/
  9. #include "precomp.hxx"
  10. extern "C" {
  11. #include "pw32kevt.h"
  12. #include <ctxdd.h>
  13. }
  14. #include <winDDIts.h>
  15. #if !defined(_GDIPLUS_)
  16. /******************************Public*Routine******************************\
  17. * EngGetTickCount
  18. *
  19. * Return the system tick count
  20. *
  21. \**************************************************************************/
  22. DWORD APIENTRY
  23. EngGetTickCount()
  24. {
  25. return( NtGetTickCount());
  26. }
  27. /******************************Public*Routine******************************\
  28. * EngFileWrite
  29. *
  30. * Write to File Object
  31. *
  32. \**************************************************************************/
  33. VOID APIENTRY
  34. EngFileWrite( HANDLE hFileObject, PVOID Buffer, ULONG BufferSize, PULONG pBytesWritten )
  35. {
  36. NTSTATUS Status;
  37. Status = CtxWriteFile( (PFILE_OBJECT)hFileObject, Buffer, BufferSize, NULL, NULL, NULL );
  38. if ( !NT_SUCCESS(Status) )
  39. *pBytesWritten = 0;
  40. else
  41. *pBytesWritten = BufferSize;
  42. }
  43. /******************************Public*Routine******************************\
  44. * EngFileIoControl
  45. *
  46. * IoControl to File Object
  47. *
  48. \**************************************************************************/
  49. DWORD
  50. APIENTRY
  51. EngFileIoControl(
  52. HANDLE hFileObject,
  53. DWORD dwIoControlCode,
  54. LPVOID lpInBuffer,
  55. DWORD nInBufferSize,
  56. LPVOID lpOutBuffer,
  57. DWORD nOutBufferSize,
  58. LPDWORD lpBytesReturned
  59. )
  60. {
  61. NTSTATUS Status;
  62. IO_STATUS_BLOCK Iosb;
  63. Status = CtxDeviceIoControlFile(
  64. (PFILE_OBJECT)hFileObject,
  65. dwIoControlCode,
  66. lpInBuffer,
  67. nInBufferSize,
  68. lpOutBuffer,
  69. nOutBufferSize,
  70. FALSE,
  71. NULL,
  72. &Iosb,
  73. NULL );
  74. *lpBytesReturned = (DWORD) Iosb.Information;
  75. return Status;
  76. }
  77. #endif // !defined(_GDIPLUS_)