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.

157 lines
2.8 KiB

  1. /*++
  2. Copyright (c) 1999-2001 Microsoft Corporation
  3. Module Name:
  4. vtutf8chan.h
  5. Abstract:
  6. Routines for managing VTUTF8 channels.
  7. Author:
  8. Brian Guarraci (briangu) March, 2001.
  9. Revision History:
  10. --*/
  11. #ifndef VTUTF8_CHAN_H
  12. #define VTUTF8_CHAN_H
  13. //
  14. // Size of a VTUTF8 channel input buffer
  15. //
  16. #define SAC_VTUTF8_IBUFFER_SIZE ((MEMORY_INCREMENT*sizeof(WCHAR)) / sizeof(UCHAR))
  17. //
  18. // The VTUTF8 Channel's internal emulator screen dimensions
  19. //
  20. #define SAC_VTUTF8_ROW_HEIGHT 24
  21. #define SAC_VTUTF8_COL_WIDTH 80
  22. //
  23. // This struct is all the information necessary for a single character on
  24. // a terminal.
  25. //
  26. typedef struct _SAC_SCREEN_ELEMENT {
  27. UCHAR FgColor;
  28. UCHAR BgColor;
  29. UCHAR Attr;
  30. WCHAR Value;
  31. } SAC_SCREEN_ELEMENT, *PSAC_SCREEN_ELEMENT;
  32. //
  33. // This struct is the screen buffer used by VTUTF8 channels
  34. //
  35. typedef struct _SAC_SCREEN_BUFFER {
  36. SAC_SCREEN_ELEMENT Element[SAC_VTUTF8_ROW_HEIGHT][SAC_VTUTF8_COL_WIDTH];
  37. } SAC_SCREEN_BUFFER, *PSAC_SCREEN_BUFFER;
  38. //
  39. // Prototypes
  40. //
  41. NTSTATUS
  42. VTUTF8ChannelOInit(
  43. PSAC_CHANNEL Channel
  44. );
  45. NTSTATUS
  46. VTUTF8ChannelCreate(
  47. IN OUT PSAC_CHANNEL Channel
  48. );
  49. NTSTATUS
  50. VTUTF8ChannelDestroy(
  51. IN OUT PSAC_CHANNEL Channel
  52. );
  53. NTSTATUS
  54. VTUTF8ChannelORead(
  55. IN PSAC_CHANNEL Channel,
  56. IN PUCHAR Buffer,
  57. IN ULONG BufferSize,
  58. OUT PULONG ByteCount
  59. );
  60. NTSTATUS
  61. VTUTF8ChannelOEcho(
  62. IN PSAC_CHANNEL Channel,
  63. IN PCUCHAR Buffer,
  64. IN ULONG BufferSize
  65. );
  66. NTSTATUS
  67. VTUTF8ChannelOWrite(
  68. IN PSAC_CHANNEL Channel,
  69. IN PCUCHAR Buffer,
  70. IN ULONG BufferSize
  71. );
  72. NTSTATUS
  73. VTUTF8ChannelOWrite2(
  74. IN PSAC_CHANNEL Channel,
  75. IN PCWSTR Buffer,
  76. IN ULONG BufferSize
  77. );
  78. NTSTATUS
  79. VTUTF8ChannelOFlush(
  80. IN PSAC_CHANNEL Channel
  81. );
  82. NTSTATUS
  83. VTUTF8ChannelIWrite(
  84. IN PSAC_CHANNEL Channel,
  85. IN PCUCHAR Buffer,
  86. IN ULONG BufferSize
  87. );
  88. NTSTATUS
  89. VTUTF8ChannelIRead(
  90. IN PSAC_CHANNEL Channel,
  91. IN PUCHAR Buffer,
  92. IN ULONG BufferSize,
  93. OUT PULONG ByteCount
  94. );
  95. ULONG
  96. VTUTF8ChannelConsumeEscapeSequence(
  97. IN PSAC_CHANNEL Channel,
  98. IN PCWSTR String
  99. );
  100. BOOLEAN
  101. VTUTF8ChannelScanForNumber(
  102. IN PCWSTR pch,
  103. OUT PULONG Number
  104. );
  105. NTSTATUS
  106. VTUTF8ChannelEcho(
  107. IN PSAC_CHANNEL Channel,
  108. IN PCUCHAR Buffer,
  109. IN ULONG BufferSize
  110. );
  111. NTSTATUS
  112. VTUTF8ChannelIBufferIsFull(
  113. IN PSAC_CHANNEL Channel,
  114. OUT BOOLEAN* BufferStatus
  115. );
  116. WCHAR
  117. VTUTF8ChannelIReadLast(
  118. IN PSAC_CHANNEL Channel
  119. );
  120. ULONG
  121. VTUTF8ChannelIBufferLength(
  122. IN PSAC_CHANNEL Channel
  123. );
  124. #endif