2 * PROJECT: ReactOS Boot Loader
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: drivers/sac/driver/channel.c
5 * PURPOSE: Driver for the Server Administration Console (SAC) for EMS
6 * PROGRAMMERS: ReactOS Portable Systems Group
9 /* INCLUDES *******************************************************************/
13 /* GLOBALS ********************************************************************/
15 /* FUNCTIONS ******************************************************************/
19 IN SAC_CHANNEL_TYPE ChannelType
22 return ((ChannelType
>= VtUtf8
) && (ChannelType
<= Raw
));
27 IN PSAC_CHANNEL Channel
,
28 IN PSAC_CHANNEL_ID ChannelId
31 return IsEqualGUIDAligned(
32 &Channel
->ChannelId
.ChannelGuid
,
33 &ChannelId
->ChannelGuid
);
37 ChannelInitializeVTable(
38 IN PSAC_CHANNEL Channel
41 return STATUS_NOT_IMPLEMENTED
;
45 ChannelDereferenceHandles(
46 IN PSAC_CHANNEL Channel
49 return STATUS_NOT_IMPLEMENTED
;
54 IN PSAC_CHANNEL Channel
57 CHECK_PARAMETER(Channel
);
59 return ChannelDereferenceHandles(Channel
);
64 IN PSAC_CHANNEL Channel
,
71 CHECK_PARAMETER3(BufferSize
< SAC_OBUFFER_SIZE
);
73 ChannelLockOBuffer(Channel
);
75 Status
= Channel
->OBufferWrite(Channel
, Buffer
, BufferSize
);
77 ChannelUnlockOBuffer(Channel
);
84 IN PSAC_CHANNEL Channel
89 ChannelLockOBuffer(Channel
);
91 Status
= Channel
->OBufferFlush(Channel
);
93 ChannelUnlockOBuffer(Channel
);
100 IN PSAC_CHANNEL Channel
,
107 ChannelLockIBuffer(Channel
);
109 Status
= Channel
->IBufferWrite(Channel
, Buffer
, BufferSize
);
111 ChannelUnlockIBuffer(Channel
);
118 IN PSAC_CHANNEL Channel
,
121 OUT PULONG ResultBufferSize
126 ChannelLockIBuffer(Channel
);
128 Status
= Channel
->IBufferRead(Channel
, Buffer
, BufferSize
, ResultBufferSize
);
130 ChannelUnlockIBuffer(Channel
);
137 IN PSAC_CHANNEL Channel
142 ChannelLockIBuffer(Channel
);
144 Status
= Channel
->IBufferReadLast(Channel
);
146 ChannelUnlockIBuffer(Channel
);
152 ChannelIBufferLength(
153 IN PSAC_CHANNEL Channel
158 ChannelLockOBuffer(Channel
);
160 Length
= Channel
->IBufferLength(Channel
);
162 ChannelUnlockOBuffer(Channel
);
169 IN PSAC_CHANNEL Channel
,
173 return STATUS_NOT_IMPLEMENTED
;
178 IN PSAC_CHANNEL Channel
,
182 return STATUS_NOT_IMPLEMENTED
;
186 ChannelGetDescription(
187 IN PSAC_CHANNEL Channel
,
188 OUT PWCHAR
*Description
191 return STATUS_NOT_IMPLEMENTED
;
195 ChannelSetDescription(
196 IN PSAC_CHANNEL Channel
,
197 IN PWCHAR Description
200 return STATUS_NOT_IMPLEMENTED
;
205 IN PSAC_CHANNEL Channel
,
206 IN SAC_CHANNEL_STATUS ChannelStatus
209 return STATUS_NOT_IMPLEMENTED
;
214 IN PSAC_CHANNEL Channel
,
215 OUT PSAC_CHANNEL_STATUS ChannelStatus
218 return STATUS_NOT_IMPLEMENTED
;
222 ChannelGetApplicationType(
223 IN PSAC_CHANNEL Channel
,
224 OUT PGUID ApplicationType
227 return STATUS_NOT_IMPLEMENTED
;
233 IN PSAC_CHANNEL Channel
238 ChannelSetEvent(Channel
, LockEvent
);
245 ChannelSetRedrawEvent(
246 IN PSAC_CHANNEL Channel
251 ChannelSetEvent(Channel
, RedrawEvent
);
257 ChannelClearRedrawEvent(
258 IN PSAC_CHANNEL Channel
263 ChannelClearEvent(Channel
, RedrawEvent
);
269 ChannelHasRedrawEvent(
270 IN PSAC_CHANNEL Channel
,
274 CHECK_PARAMETER1(Channel
);
275 CHECK_PARAMETER2(Present
);
277 *Present
= Channel
->Flags
& SAC_CHANNEL_FLAG_REDRAW_EVENT
;
279 return STATUS_SUCCESS
;
284 IN PSAC_CHANNEL Channel
287 SAC_CHANNEL_STATUS ChannelStatus
;
289 if (!NT_SUCCESS(ChannelGetStatus(Channel
, &ChannelStatus
))) return FALSE
;
291 return (ChannelStatus
== Active
);
296 IN PSAC_CHANNEL Channel
304 IN PSAC_CHANNEL Channel
,
305 IN PSAC_CHANNEL_ATTRIBUTES Attributes
,
306 IN SAC_CHANNEL_ID ChannelId
309 return STATUS_NOT_IMPLEMENTED
;
314 IN PSAC_CHANNEL Channel
317 return STATUS_NOT_IMPLEMENTED
;