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

ksiface.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include <ntddk.h>
00004 #include <ks.h>
00005 
00006 #if !defined(DEFINE_ABSTRACT_UNKNOWN)
00007 
00008 #define DEFINE_ABSTRACT_UNKNOWN()                               \
00009     STDMETHOD_(NTSTATUS, QueryInterface)(THIS_                  \
00010         REFIID InterfaceId,                                     \
00011         PVOID* Interface)PURE;                                  \
00012     STDMETHOD_(ULONG,AddRef)(THIS) PURE;                        \
00013     STDMETHOD_(ULONG,Release)(THIS) PURE;
00014 #endif
00015 
00016 typedef struct
00017 {
00018     LIST_ENTRY Entry;
00019     LIST_ENTRY ObjectList;
00020     PRKMUTEX BagMutex;
00021     PVOID DeviceHeader;
00022 }KSIOBJECT_BAG, *PKSIOBJECT_BAG;
00023 
00024 
00025 /*****************************************************************************
00026  * IKsAllocator
00027  *****************************************************************************
00028  */
00029 
00030 #undef INTERFACE
00031 #define INTERFACE IKsAllocator
00032 
00033 DECLARE_INTERFACE_(IKsAllocator, IUnknown)
00034 {
00035     DEFINE_ABSTRACT_UNKNOWN()
00036 
00037     STDMETHOD_(NTSTATUS, DispatchDeviceIoControl)(THIS_
00038         IN PDEVICE_OBJECT DeviceObject,
00039         IN PIRP Irp) PURE;
00040 
00041     STDMETHOD_(NTSTATUS, Close)(THIS) PURE;
00042 
00043     STDMETHOD_(NTSTATUS, AllocateFrame)(THIS_
00044         IN PVOID * OutFrame) PURE;
00045 
00046     STDMETHOD_(VOID, FreeFrame)(THIS_
00047         IN PVOID OutFrame) PURE;
00048 };
00049 
00050 
00051 /*****************************************************************************
00052  * IKsPin
00053  *****************************************************************************
00054  */
00055 
00056 #undef INTERFACE
00057 #define INTERFACE IKsClock
00058 
00059 DECLARE_INTERFACE_(IKsClock, IUnknown)
00060 {
00061     DEFINE_ABSTRACT_UNKNOWN()
00062 };
00063 
00064 /*****************************************************************************
00065  * IKsTransport
00066  *****************************************************************************
00067  */
00068 
00069 #undef INTERFACE
00070 #define INTERFACE IKsTransport
00071 
00072 DECLARE_INTERFACE_(IKsTransport, IUnknown)
00073 {
00074     DEFINE_ABSTRACT_UNKNOWN()
00075 };
00076 
00077 
00078 /*****************************************************************************
00079  * IKsPin
00080  *****************************************************************************
00081  */
00082 
00083 #undef INTERFACE
00084 #define INTERFACE IKsPin
00085 
00086 struct KSPTRANSPORTCONFIG;
00087 
00088 DECLARE_INTERFACE_(IKsPin, IUnknown)
00089 {
00090     DEFINE_ABSTRACT_UNKNOWN()
00091 
00092     STDMETHOD_(NTSTATUS, TransferKsIrp)(THIS_
00093         IN PIRP Irp,
00094         IN IKsTransport **OutTransport) PURE;
00095 
00096     STDMETHOD_(VOID, DiscardKsIrp)(THIS_
00097         IN PIRP Irp,
00098         IN IKsTransport * *OutTransport) PURE;
00099 
00100     STDMETHOD_(NTSTATUS, Connect)(THIS_
00101         IN IKsTransport * TransportIn,
00102         OUT IKsTransport ** OutTransportIn,
00103         OUT IKsTransport * *OutTransportOut,
00104         IN KSPIN_DATAFLOW DataFlow) PURE;
00105 
00106     STDMETHOD_(NTSTATUS, SetDeviceState)(THIS_
00107         IN KSSTATE OldState,
00108         IN KSSTATE NewState,
00109         IN IKsTransport * *OutTransport) PURE;
00110 
00111     STDMETHOD_(VOID, SetResetState)(THIS_ 
00112         IN KSRESET ResetState,
00113         OUT IKsTransport * * OutTransportOut) PURE;
00114 
00115     STDMETHOD_(NTSTATUS, GetTransportConfig)(THIS_
00116         IN struct KSPTRANSPORTCONFIG * TransportConfig,
00117         OUT IKsTransport ** OutTransportIn,
00118         OUT IKsTransport ** OutTransportOut) PURE;
00119 
00120     STDMETHOD_(NTSTATUS, SetTransportConfig)(THIS_
00121         IN struct KSPTRANSPORTCONFIG const * TransportConfig,
00122         OUT IKsTransport ** OutTransportIn,
00123         OUT IKsTransport ** OutTransportOut) PURE;
00124 
00125     STDMETHOD_(NTSTATUS, ResetTransportConfig)(THIS_
00126         OUT IKsTransport ** OutTransportIn,
00127         OUT IKsTransport ** OutTransportOut) PURE;
00128 
00129     STDMETHOD_(PKSPIN, GetStruct)(THIS) PURE;
00130     STDMETHOD_(PKSPROCESSPIN, GetProcessPin)(THIS) PURE;
00131     STDMETHOD_(NTSTATUS, AttemptBypass)(THIS) PURE;
00132     STDMETHOD_(NTSTATUS, AttemptUnbypass)(THIS) PURE;
00133 
00134     STDMETHOD_(VOID, GenerateConnectionEvents)(THIS_
00135         IN ULONG EventMask) PURE;
00136 
00137     STDMETHOD_(NTSTATUS, ClientSetDeviceState)(THIS_
00138         IN KSSTATE StateIn,
00139         IN KSSTATE StateOut) PURE;
00140 };
00141 
00142 /*****************************************************************************
00143  * IKsQueue
00144  *****************************************************************************
00145  */
00146 
00147 #undef INTERFACE
00148 #define INTERFACE IKsQueue
00149 
00150 DECLARE_INTERFACE_(IKsQueue, IUnknown)
00151 {
00152     DEFINE_ABSTRACT_UNKNOWN()
00153 
00154 };
00155 
00156 /*****************************************************************************
00157  * IKsFilterFactory
00158  *****************************************************************************
00159  */
00160 
00161 #undef INTERFACE
00162 #define INTERFACE IKsFilter
00163 
00164 struct KSPROCESSPIPESECTION;
00165 
00166 
00167 DECLARE_INTERFACE_(IKsFilter, IUnknown)
00168 {
00169     DEFINE_ABSTRACT_UNKNOWN()
00170 
00171     STDMETHOD_(PKSFILTER, GetStruct)(THIS) PURE;
00172 
00173     STDMETHOD_(BOOL, DoAllNecessaryPinsExist)(THIS) PURE;
00174 
00175     STDMETHOD_(NTSTATUS, CreateNode)(THIS_
00176         IN PIRP Irp,
00177         IN IKsPin * Pin,
00178         IN PLIST_ENTRY ListEntry) PURE;
00179 
00180     STDMETHOD_(NTSTATUS, BindProcessPinsToPipeSection)(THIS_
00181         IN struct KSPROCESSPIPESECTION *Section,
00182         IN PVOID Create,
00183         IN PKSPIN KsPin,
00184         OUT IKsPin **Pin,
00185         OUT PKSGATE *OutGate) PURE;
00186 
00187     STDMETHOD_(NTSTATUS, UnbindProcessPinsFromPipeSection)(THIS_
00188         IN struct KSPROCESSPIPESECTION *Section) PURE;
00189 
00190     STDMETHOD_(NTSTATUS, AddProcessPin)(THIS_
00191         IN PKSPROCESSPIN ProcessPin) PURE;
00192 
00193     STDMETHOD_(NTSTATUS, RemoveProcessPin)(THIS_
00194         IN PKSPROCESSPIN ProcessPin) PURE;
00195 
00196     STDMETHOD_(BOOL, ReprepareProcessPipeSection)(THIS_
00197         IN struct KSPROCESSPIPESECTION *PipeSection,
00198         IN PULONG Data) PURE;
00199 
00200     STDMETHOD_(VOID, DeliverResetState)(THIS_
00201         IN struct KSPROCESSPIPESECTION *PipeSection,
00202         IN KSRESET ResetState) PURE;
00203 
00204     STDMETHOD_(BOOL, IsFrameHolding)(THIS);
00205 
00206     STDMETHOD_(VOID, RegisterForCopyCallbacks)(THIS_
00207         IKsQueue * Queue,
00208         IN BOOL Enable) PURE;
00209 
00210     STDMETHOD_(PKSPROCESSPIN_INDEXENTRY, GetProcessDispatch)(THIS);
00211 };
00212 
00213 /*****************************************************************************
00214  * IKsFilterFactory
00215  *****************************************************************************
00216  */
00217 
00218 #undef INTERFACE
00219 #define INTERFACE IKsFilterFactory
00220 
00221 DECLARE_INTERFACE_(IKsFilterFactory, IUnknown)
00222 {
00223     DEFINE_ABSTRACT_UNKNOWN()
00224 
00225     STDMETHOD_(KSFILTERFACTORY*, GetStruct)(THIS) PURE;
00226 
00227     STDMETHOD_(NTSTATUS, SetDeviceClassesState)(THIS_
00228         IN BOOLEAN Enable)PURE;
00229 
00230     STDMETHOD_(NTSTATUS, Initialize)(THIS_
00231         IN PDEVICE_OBJECT  DeviceObject,
00232         IN const KSFILTER_DESCRIPTOR  *Descriptor,
00233         IN PWSTR  RefString OPTIONAL,
00234         IN PSECURITY_DESCRIPTOR  SecurityDescriptor OPTIONAL,
00235         IN ULONG  CreateItemFlags,
00236         IN PFNKSFILTERFACTORYPOWER  SleepCallback OPTIONAL,
00237         IN PFNKSFILTERFACTORYPOWER  WakeCallback OPTIONAL,
00238         OUT PKSFILTERFACTORY  *FilterFactory OPTIONAL)PURE;
00239 };
00240 
00241 
00242 /*****************************************************************************
00243  * IKsPowerNotify
00244  *****************************************************************************
00245  */
00246 
00247 #undef INTERFACE
00248 #define INTERFACE IKsPowerNotify
00249 
00250 DECLARE_INTERFACE_(IKsPowerNotify, IUnknown)
00251 {
00252     DEFINE_ABSTRACT_UNKNOWN()
00253 
00254     STDMETHOD_(VOID,Sleep)(THIS_
00255         IN DEVICE_POWER_STATE State) PURE;
00256 
00257     STDMETHOD_(VOID,Wake)(THIS) PURE;
00258 };
00259 
00260 
00261 /*****************************************************************************
00262  * IKsDevice
00263  *****************************************************************************
00264  */
00265 
00266 #undef INTERFACE
00267 #define INTERFACE IKsDevice
00268 
00269 struct KSPOWER_ENTRY;
00270 
00271 DECLARE_INTERFACE_(IKsDevice, IUnknown)
00272 {
00273     DEFINE_ABSTRACT_UNKNOWN()
00274 
00275     STDMETHOD_(KSDEVICE*,GetStruct)(THIS) PURE;
00276 
00277     STDMETHOD_(NTSTATUS, InitializeObjectBag)(THIS_
00278         IN PKSIOBJECT_BAG Bag,
00279         IN PRKMUTEX Mutex) PURE;
00280 
00281     STDMETHOD_(NTSTATUS,AcquireDevice)(THIS) PURE;
00282     STDMETHOD_(NTSTATUS,ReleaseDevice)(THIS) PURE;
00283 
00284     STDMETHOD_(NTSTATUS, GetAdapterObject)(THIS_
00285         IN PADAPTER_OBJECT * Object,
00286         IN PULONG MaxMappingsByteCount,
00287         IN PULONG MappingTableStride) PURE;
00288 
00289     STDMETHOD_(NTSTATUS, AddPowerEntry)(THIS_
00290         IN struct KSPOWER_ENTRY * Entry,
00291         IN IKsPowerNotify* Notify)PURE;
00292 
00293     STDMETHOD_(NTSTATUS, RemovePowerEntry)(THIS_
00294         IN struct KSPOWER_ENTRY * Entry)PURE;
00295 
00296     STDMETHOD_(NTSTATUS, PinStateChange)(THIS_
00297         IN KSPIN Pin,
00298         IN PIRP Irp,
00299         IN KSSTATE OldState,
00300         IN KSSTATE NewState)PURE;
00301 
00302     STDMETHOD_(NTSTATUS, ArbitrateAdapterChannel)(THIS_
00303         IN ULONG NumberOfMapRegisters,
00304         IN PDRIVER_CONTROL ExecutionRoutine,
00305         IN PVOID Context)PURE;
00306 
00307     STDMETHOD_(NTSTATUS, CheckIoCapability)(THIS_
00308         IN ULONG Unknown)PURE;
00309 };
00310 
00311 #undef INTERFACE
00312 
00313 
00314 /*****************************************************************************
00315  * IKsProcessingObject
00316  *****************************************************************************
00317  */
00318 
00319 #undef INTERFACE
00320 #define INTERFACE IKsProcessingObject
00321 
00322 DECLARE_INTERFACE_(IKsProcessingObject, IUnknown)
00323 {
00324     DEFINE_ABSTRACT_UNKNOWN()
00325 
00326     STDMETHOD_(VOID, ProcessingObjectWork)(THIS) PURE;
00327 
00328     STDMETHOD_(PKSGATE, GetAndGate)(THIS) PURE;
00329 
00330     STDMETHOD_(VOID, Process)(THIS_
00331         IN BOOLEAN Asynchronous)PURE;
00332 
00333     STDMETHOD_(VOID, Reset)(THIS) PURE;
00334 
00335     STDMETHOD_(VOID, TriggerNotification)(THIS) PURE;
00336 
00337 };
00338 
00339 #undef INTERFACE
00340 

Generated on Sun May 27 2012 04:27:52 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.