ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

channel.c
Go to the documentation of this file.
00001 /*
00002  * PROJECT:      ReactOS Boot Loader
00003  * LICENSE:      BSD - See COPYING.ARM in the top level directory
00004  * FILE:         drivers/sac/driver/channel.c
00005  * PURPOSE:      Driver for the Server Administration Console (SAC) for EMS
00006  * PROGRAMMERS:  ReactOS Portable Systems Group
00007  */
00008 
00009 /* INCLUDES *******************************************************************/
00010 
00011 #include "sacdrv.h"
00012 
00013 /* GLOBALS ********************************************************************/
00014 
00015 /* FUNCTIONS ******************************************************************/
00016 
00017 BOOLEAN
00018 ChannelIsValidType(
00019     IN SAC_CHANNEL_TYPE ChannelType
00020     )
00021 {
00022     return ((ChannelType >= VtUtf8) && (ChannelType <= Raw));
00023 }
00024 
00025 BOOLEAN
00026 ChannelIsEqual(
00027     IN PSAC_CHANNEL Channel,
00028     IN PSAC_CHANNEL_ID ChannelId
00029     )
00030 {
00031     return IsEqualGUIDAligned(
00032         &Channel->ChannelId.ChannelGuid,
00033         &ChannelId->ChannelGuid);
00034 }
00035 
00036 NTSTATUS
00037 ChannelInitializeVTable(
00038     IN PSAC_CHANNEL Channel
00039     )
00040 {
00041      return STATUS_NOT_IMPLEMENTED;
00042 }
00043 
00044 NTSTATUS
00045 ChannelDereferenceHandles(
00046     IN PSAC_CHANNEL Channel
00047     )
00048 {
00049     return STATUS_NOT_IMPLEMENTED;
00050 }
00051 
00052 NTSTATUS
00053 ChannelDestroy(
00054     IN PSAC_CHANNEL Channel
00055     )
00056 {
00057     CHECK_PARAMETER(Channel);
00058     
00059     return ChannelDereferenceHandles(Channel);
00060 }
00061 
00062 NTSTATUS
00063 ChannelOWrite(
00064     IN PSAC_CHANNEL Channel,
00065     IN PWCHAR Buffer,
00066     IN ULONG BufferSize
00067     )
00068 {
00069     NTSTATUS Status;
00070     
00071     CHECK_PARAMETER3(BufferSize < SAC_OBUFFER_SIZE);
00072 
00073     ChannelLockOBuffer(Channel);
00074 
00075     Status = Channel->OBufferWrite(Channel, Buffer, BufferSize);
00076     
00077     ChannelUnlockOBuffer(Channel);
00078     
00079     return Status;
00080 }
00081 
00082 NTSTATUS
00083 ChannelOFlush(
00084     IN PSAC_CHANNEL Channel
00085     )
00086 {
00087     NTSTATUS Status;
00088     
00089     ChannelLockOBuffer(Channel);
00090 
00091     Status = Channel->OBufferFlush(Channel);
00092     
00093     ChannelUnlockOBuffer(Channel);
00094     
00095     return Status;
00096 }
00097 
00098 NTSTATUS
00099 ChannelIWrite(
00100     IN PSAC_CHANNEL Channel,
00101     IN PWCHAR Buffer,
00102     IN ULONG BufferSize
00103     )
00104 {
00105     NTSTATUS Status;
00106 
00107     ChannelLockIBuffer(Channel);
00108 
00109     Status = Channel->IBufferWrite(Channel, Buffer, BufferSize);
00110     
00111     ChannelUnlockIBuffer(Channel);
00112     
00113     return Status;
00114 }
00115 
00116 ULONG 
00117 ChannelIRead(
00118     IN PSAC_CHANNEL Channel,
00119     PWCHAR Buffer,
00120     ULONG BufferSize,
00121     OUT PULONG ResultBufferSize
00122     )
00123 {
00124     NTSTATUS Status;
00125     
00126     ChannelLockIBuffer(Channel);
00127 
00128     Status = Channel->IBufferRead(Channel, Buffer, BufferSize, ResultBufferSize);
00129     
00130     ChannelUnlockIBuffer(Channel);
00131     
00132     return Status;
00133 }
00134 
00135 NTSTATUS
00136 ChannelIReadLast(
00137     IN PSAC_CHANNEL Channel
00138     )
00139 {
00140     NTSTATUS Status;
00141 
00142     ChannelLockIBuffer(Channel);
00143 
00144     Status = Channel->IBufferReadLast(Channel);
00145     
00146     ChannelUnlockIBuffer(Channel);
00147     
00148     return Status;
00149 }
00150 
00151 ULONG
00152 ChannelIBufferLength(
00153     IN PSAC_CHANNEL Channel
00154     )
00155 {
00156     NTSTATUS Length;
00157 
00158     ChannelLockOBuffer(Channel);
00159 
00160     Length = Channel->IBufferLength(Channel);
00161     
00162     ChannelUnlockOBuffer(Channel);
00163     
00164     return Length;
00165 }
00166 
00167 NTSTATUS
00168 ChannelGetName(
00169     IN PSAC_CHANNEL Channel,
00170     OUT PWCHAR *Name
00171     )
00172 {
00173     return STATUS_NOT_IMPLEMENTED;
00174 }
00175 
00176 NTSTATUS
00177 ChannelSetName(
00178     IN PSAC_CHANNEL Channel,
00179     IN PWCHAR Name
00180     )
00181 {
00182     return STATUS_NOT_IMPLEMENTED;
00183 }
00184 
00185 NTSTATUS
00186 ChannelGetDescription(
00187     IN PSAC_CHANNEL Channel,
00188     OUT PWCHAR *Description
00189     )
00190 {
00191     return STATUS_NOT_IMPLEMENTED;
00192 }
00193 
00194 NTSTATUS
00195 ChannelSetDescription(
00196     IN PSAC_CHANNEL Channel,
00197     IN PWCHAR Description
00198     )
00199 {
00200     return STATUS_NOT_IMPLEMENTED;
00201 }
00202 
00203 NTSTATUS
00204 ChannelSetStatus(
00205     IN PSAC_CHANNEL Channel,
00206     IN SAC_CHANNEL_STATUS ChannelStatus
00207     )
00208 {
00209     return STATUS_NOT_IMPLEMENTED;
00210 }
00211 
00212 NTSTATUS
00213 ChannelGetStatus(
00214     IN PSAC_CHANNEL Channel,
00215     OUT PSAC_CHANNEL_STATUS ChannelStatus
00216     )
00217 {
00218     return STATUS_NOT_IMPLEMENTED;
00219 }
00220 
00221 NTSTATUS
00222 ChannelGetApplicationType(
00223     IN PSAC_CHANNEL Channel,
00224     OUT PGUID ApplicationType
00225     )
00226 {
00227     return STATUS_NOT_IMPLEMENTED;
00228 }
00229 
00230 NTSTATUS
00231 NTAPI
00232 ChannelSetLockEvent(
00233     IN PSAC_CHANNEL Channel
00234     )
00235 {
00236     NTSTATUS Status;
00237     
00238     ChannelSetEvent(Channel, LockEvent);
00239     
00240     return Status;
00241 }
00242 
00243 NTSTATUS
00244 NTAPI
00245 ChannelSetRedrawEvent(
00246     IN PSAC_CHANNEL Channel
00247     )
00248 {
00249     NTSTATUS Status;
00250 
00251     ChannelSetEvent(Channel, RedrawEvent);
00252 
00253     return Status;
00254 }
00255 
00256 NTSTATUS
00257 ChannelClearRedrawEvent(
00258     IN PSAC_CHANNEL Channel
00259     )
00260 {
00261     NTSTATUS Status;
00262     
00263     ChannelClearEvent(Channel, RedrawEvent);
00264     
00265     return Status;
00266 }
00267 
00268 NTSTATUS
00269 ChannelHasRedrawEvent(
00270     IN PSAC_CHANNEL Channel,
00271     OUT PBOOLEAN Present
00272     )
00273 {
00274     CHECK_PARAMETER1(Channel);
00275     CHECK_PARAMETER2(Present);
00276     
00277     *Present = Channel->Flags & SAC_CHANNEL_FLAG_REDRAW_EVENT;
00278     
00279     return STATUS_SUCCESS;
00280 }
00281 
00282 BOOLEAN
00283 ChannelIsActive(
00284     IN PSAC_CHANNEL Channel
00285     )
00286 {
00287     SAC_CHANNEL_STATUS ChannelStatus;
00288 
00289     if (!NT_SUCCESS(ChannelGetStatus(Channel, &ChannelStatus))) return FALSE;
00290 
00291     return (ChannelStatus == Active);
00292 }
00293 
00294 BOOLEAN
00295 ChannelIsClosed(
00296     IN PSAC_CHANNEL Channel
00297     )
00298 {
00299     return FALSE;
00300 }
00301 
00302 NTSTATUS
00303 ChannelCreate(
00304     IN PSAC_CHANNEL Channel,
00305     IN PSAC_CHANNEL_ATTRIBUTES Attributes,
00306     IN SAC_CHANNEL_ID ChannelId
00307     )
00308 {
00309     return STATUS_NOT_IMPLEMENTED;
00310 }
00311 
00312 NTSTATUS
00313 ChannelClose(
00314     IN PSAC_CHANNEL Channel
00315     )
00316 {
00317     return STATUS_NOT_IMPLEMENTED;
00318 }

Generated on Sat May 26 2012 04:26:42 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.