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))
NTSTATUS NTAPI ChannelDestroy(IN PSAC_CHANNEL Channel)
BOOLEAN NTAPI ConMgrIsWriteEnabled(IN PSAC_CHANNEL Channel)
NTSTATUS NTAPI ConMgrWriteData(IN PSAC_CHANNEL Channel, IN PVOID Buffer, IN ULONG BufferLength)
NTSTATUS NTAPI ConMgrFlushData(IN PSAC_CHANNEL Channel)
#define NT_SUCCESS(StatCode)
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
long __cdecl _InterlockedExchange(_Interlocked_operand_ long volatile *_Target, long _Value)
#define UNREFERENCED_PARAMETER(P)
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define STATUS_INVALID_BUFFER_SIZE
FORCEINLINE BOOLEAN ChannelHasNewOBufferData(IN PSAC_CHANNEL Channel)
ULONG NTAPI RawChannelIBufferLength(IN PSAC_CHANNEL Channel)
NTSTATUS NTAPI RawChannelOWrite2(IN PSAC_CHANNEL Channel, IN PCHAR String, IN ULONG Size)
NTSTATUS NTAPI RawChannelIRead(IN PSAC_CHANNEL Channel, IN PCHAR Buffer, IN ULONG BufferSize, IN PULONG ReturnBufferSize)
NTSTATUS NTAPI RawChannelOWrite(IN PSAC_CHANNEL Channel, IN PCHAR String, IN ULONG Length)
NTSTATUS NTAPI RawChannelDestroy(IN PSAC_CHANNEL Channel)
NTSTATUS NTAPI RawChannelOEcho(IN PSAC_CHANNEL Channel, IN PCHAR String, IN ULONG Length)
WCHAR NTAPI RawChannelIReadLast(IN PSAC_CHANNEL Channel)
NTSTATUS NTAPI RawChannelCreate(IN PSAC_CHANNEL Channel)
NTSTATUS NTAPI RawChannelIWrite(IN PSAC_CHANNEL Channel, IN PCHAR Buffer, IN ULONG BufferSize)
ULONG NTAPI RawChannelGetIBufferIndex(IN PSAC_CHANNEL Channel)
NTSTATUS NTAPI RawChannelIBufferIsFull(IN PSAC_CHANNEL Channel, OUT PBOOLEAN BufferStatus)
NTSTATUS NTAPI RawChannelORead(IN PSAC_CHANNEL Channel, IN PCHAR Buffer, IN ULONG BufferSize, OUT PULONG ByteCount)
VOID NTAPI RawChannelSetIBufferIndex(IN PSAC_CHANNEL Channel, IN ULONG BufferIndex)
NTSTATUS NTAPI RawChannelOFlush(IN PSAC_CHANNEL Channel)
#define CHECK_PARAMETER2(x)
#define SacAllocatePool(Length, Tag)
#define CHECK_PARAMETER3(x)
#define CHECK_PARAMETER1(x)
#define CHECK_PARAMETER_WITH_STATUS(Condition, Status)
#define SAC_RAW_IBUFFER_SIZE
#define SAC_RAW_OBUFFER_SIZE
#define CHECK_PARAMETER4(x)
#define CHECK_ALLOCATION(x)
#define ChannelSetEvent(Channel, x)
#define ChannelClearEvent(Channel, x)
FORCEINLINE BOOLEAN ChannelHasNewIBufferData(IN PSAC_CHANNEL Channel)
#define CHECK_PARAMETER(x)
#define SAC_CHANNEL_FLAG_HAS_NEW_DATA_EVENT
#define SacFreePool(Pointer)
_In_ DWORD _In_ DWORD ReturnBufferSize
#define RtlCopyMemory(Destination, Source, Length)
#define RtlMoveMemory(Destination, Source, Length)
#define STATUS_UNSUCCESSFUL
#define STATUS_NO_DATA_DETECTED
#define STATUS_INSUFFICIENT_RESOURCES
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _In_ LARGE_INTEGER ByteCount