30 Channel->OBufferIndex = 0;
31 Channel->OBufferFirstGoodIndex = 0;
32 Channel->ChannelHasNewIBufferData =
FALSE;
33 Channel->ChannelHasNewOBufferData =
FALSE;
44 if (Channel->OBuffer)
SacFreePool(Channel->OBuffer);
45 if (Channel->IBuffer)
SacFreePool(Channel->IBuffer);
53 return Channel->ChannelHasNewOBufferData;
79 Buffer[(*ByteCount)++] = Channel->OBuffer[Channel->OBufferFirstGoodIndex];
82 Channel->OBufferFirstGoodIndex = NextIndex;
84 if (NextIndex == Channel->OBufferIndex)
100 if (Channel->OBufferFirstGoodIndex == Channel->OBufferIndex)
107 ASSERT(Channel->OBufferFirstGoodIndex == Channel->OBufferIndex);
149 if ((Channel->OBufferIndex == Channel->OBufferFirstGoodIndex) &&
157 Channel->OBuffer[Channel->OBufferIndex] =
String[
i];
160 Channel->OBufferIndex = NextIndex;
162 if (Overflow) Channel->OBufferFirstGoodIndex = NextIndex;
218 return Channel->IBufferIndex;
231 Channel->IBufferIndex = BufferIndex;
235 if (!(Channel->IBufferIndex) &&
260 if (Channel->ChannelInputBufferLength(Channel) == 0)
268 CopyChars =
min(Channel->ChannelInputBufferLength(Channel),
BufferSize);
269 ASSERT(CopyChars <= Channel->ChannelInputBufferLength(Channel));
279 if (Channel->ChannelInputBufferLength(Channel))
283 &Channel->IBuffer[CopyChars],
284 Channel->ChannelInputBufferLength(Channel));
326 if (Channel->ChannelInputBufferLength(Channel))
BOOLEAN NTAPI ConMgrIsWriteEnabled(IN PSAC_CHANNEL Channel)
#define STATUS_INSUFFICIENT_RESOURCES
#define CHECK_ALLOCATION(x)
_In_ ULONG _In_ ULONG _In_ ULONG Length
WCHAR NTAPI RawChannelIReadLast(IN PSAC_CHANNEL Channel)
#define SAC_RAW_OBUFFER_SIZE
#define UNREFERENCED_PARAMETER(P)
#define SAC_RAW_IBUFFER_SIZE
long __cdecl _InterlockedExchange(_Interlocked_operand_ long volatile *_Target, long _Value)
IN PVOID IN PVOID IN USHORT IN USHORT Size
_In_ DWORD _In_ DWORD ReturnBufferSize
ULONG NTAPI RawChannelIBufferLength(IN PSAC_CHANNEL Channel)
#define RtlMoveMemory(Destination, Source, Length)
ULONG NTAPI RawChannelGetIBufferIndex(IN PSAC_CHANNEL Channel)
NTSTATUS NTAPI ChannelDestroy(IN PSAC_CHANNEL Channel)
FORCEINLINE BOOLEAN ChannelHasNewOBufferData(IN PSAC_CHANNEL Channel)
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
NTSTATUS NTAPI RawChannelOWrite2(IN PSAC_CHANNEL Channel, IN PCHAR String, IN ULONG Size)
NTSTATUS NTAPI RawChannelOEcho(IN PSAC_CHANNEL Channel, IN PCHAR String, IN ULONG Length)
#define CHECK_PARAMETER(x)
#define SacAllocatePool(Length, Tag)
#define STATUS_INVALID_BUFFER_SIZE
NTSTATUS NTAPI ConMgrFlushData(IN PSAC_CHANNEL Channel)
FORCEINLINE BOOLEAN ChannelHasNewIBufferData(IN PSAC_CHANNEL Channel)
#define ChannelSetEvent(Channel, x)
NTSTATUS NTAPI RawChannelORead(IN PSAC_CHANNEL Channel, IN PCHAR Buffer, IN ULONG BufferSize, OUT PULONG ByteCount)
#define NT_SUCCESS(StatCode)
#define SAC_CHANNEL_FLAG_HAS_NEW_DATA_EVENT
_In_ WDFCOLLECTION _In_ ULONG Index
NTSTATUS NTAPI RawChannelDestroy(IN PSAC_CHANNEL Channel)
NTSTATUS NTAPI RawChannelIRead(IN PSAC_CHANNEL Channel, IN PCHAR Buffer, IN ULONG BufferSize, IN PULONG ReturnBufferSize)
#define SacFreePool(Pointer)
#define CHECK_PARAMETER1(x)
#define STATUS_UNSUCCESSFUL
VOID NTAPI RawChannelSetIBufferIndex(IN PSAC_CHANNEL Channel, IN ULONG BufferIndex)
#define STATUS_NO_DATA_DETECTED
#define ChannelClearEvent(Channel, x)
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _In_ LARGE_INTEGER ByteCount
#define CHECK_PARAMETER3(x)
NTSTATUS NTAPI ConMgrWriteData(IN PSAC_CHANNEL Channel, IN PVOID Buffer, IN ULONG BufferLength)
#define CHECK_PARAMETER4(x)
NTSTATUS NTAPI RawChannelOWrite(IN PSAC_CHANNEL Channel, IN PCHAR String, IN ULONG Length)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
NTSTATUS NTAPI RawChannelOFlush(IN PSAC_CHANNEL Channel)
#define CHECK_PARAMETER_WITH_STATUS(Condition, Status)
#define CHECK_PARAMETER2(x)
#define RtlCopyMemory(Destination, Source, Length)
NTSTATUS NTAPI RawChannelIWrite(IN PSAC_CHANNEL Channel, IN PCHAR Buffer, IN ULONG BufferSize)
NTSTATUS NTAPI RawChannelCreate(IN PSAC_CHANNEL Channel)
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
NTSTATUS NTAPI RawChannelIBufferIsFull(IN PSAC_CHANNEL Channel, OUT PBOOLEAN BufferStatus)