ReactOS  0.4.15-dev-4857-g47842d7
CPortPinWavePci Class Reference
Inheritance diagram for CPortPinWavePci:
Collaboration diagram for CPortPinWavePci:

Public Member Functions

STDMETHODIMP QueryInterface (REFIID InterfaceId, PVOID *Interface)
 
 CPortPinWavePci (IUnknown *OuterUnknown)
 
virtual ~CPortPinWavePci ()
 
- Public Member Functions inherited from CUnknownImpl< IPortPinWavePci, IServiceSink, IPortWavePciStream >
 STDMETHODIMP_ (ULONG) AddRef()
 
 STDMETHODIMP_ (ULONG) Release()
 

Public Attributes

 IMP_IPortPinWavePci
 
 IMP_IServiceSink
 
 IMP_IPortWavePciStream
 

Protected Member Functions

NTSTATUS NTAPI HandleKsProperty (IN PIRP Irp)
 
NTSTATUS NTAPI HandleKsStream (IN PIRP Irp)
 
- Protected Member Functions inherited from CUnknownImpl< IPortPinWavePci, IServiceSink, IPortWavePciStream >
 CUnknownImpl ()
 
virtual ~CUnknownImpl ()
 

Protected Attributes

IPortWavePci * m_Port
 
IPortFilterWavePci * m_Filter
 
KSPIN_DESCRIPTOR * m_KsPinDescriptor
 
PMINIPORTWAVEPCI m_Miniport
 
PSERVICEGROUP m_ServiceGroup
 
PDMACHANNEL m_DmaChannel
 
PMINIPORTWAVEPCISTREAM m_Stream
 
KSSTATE m_State
 
PKSDATAFORMAT m_Format
 
KSPIN_CONNECTm_ConnectDetails
 
BOOL m_Capture
 
PDEVICE_OBJECT m_DeviceObject
 
IIrpQueue * m_IrpQueue
 
ULONG m_TotalPackets
 
KSAUDIO_POSITION m_Position
 
ULONG m_StopCount
 
BOOL m_bUsePrefetch
 
ULONG m_PrefetchOffset
 
SUBDEVICE_DESCRIPTOR m_Descriptor
 
KSALLOCATOR_FRAMING m_AllocatorFraming
 

Friends

NTSTATUS NTAPI PinWavePciState (IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
 
NTSTATUS NTAPI PinWavePciDataFormat (IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
 
NTSTATUS NTAPI PinWavePciAudioPosition (IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
 
NTSTATUS NTAPI PinWavePciAllocatorFraming (IN PIRP Irp, IN PKSIDENTIFIER Request, IN OUT PVOID Data)
 

Detailed Description

Definition at line 17 of file pin_wavepci.cpp.

Constructor & Destructor Documentation

◆ CPortPinWavePci()

CPortPinWavePci::CPortPinWavePci ( IUnknown OuterUnknown)
inline

Definition at line 25 of file pin_wavepci.cpp.

25 {}

◆ ~CPortPinWavePci()

virtual CPortPinWavePci::~CPortPinWavePci ( )
inlinevirtual

Definition at line 26 of file pin_wavepci.cpp.

26 {}

Member Function Documentation

◆ HandleKsProperty()

NTSTATUS NTAPI CPortPinWavePci::HandleKsProperty ( IN PIRP  Irp)
protected

Definition at line 482 of file pin_wavepci.cpp.

484 {
485  //PKSPROPERTY Property;
487  //UNICODE_STRING GuidString;
488  PIO_STACK_LOCATION IoStack;
489 
490  //DPRINT("IPortPinWave_HandleKsProperty entered\n");
491 
493 
494  if (IoStack->Parameters.DeviceIoControl.IoControlCode != IOCTL_KS_PROPERTY)
495  {
496  //DPRINT("Unhandled function %lx Length %x\n", IoStack->Parameters.DeviceIoControl.IoControlCode, IoStack->Parameters.DeviceIoControl.InputBufferLength);
497 
498  Irp->IoStatus.Status = STATUS_SUCCESS;
499 
501  return STATUS_SUCCESS;
502  }
503 
505 
506  if (Status == STATUS_NOT_FOUND)
507  {
508  //Property = (PKSPROPERTY)IoStack->Parameters.DeviceIoControl.Type3InputBuffer;
509 #if 0
511  //DPRINT("Unhandled property Set |%S| Id %u Flags %x\n", GuidString.Buffer, Property->Id, Property->Flags);
513 #endif
514  }
515 
516  if (Status != STATUS_PENDING)
517  {
518  Irp->IoStatus.Status = Status;
520  }
521 
522  return Status;
523 }
static PWSTR GuidString
Definition: apphelp.c:93
#define IOCTL_KS_PROPERTY
Definition: ks.h:127
NTSTATUS NTAPI PcHandlePropertyWithTable(IN PIRP Irp, IN ULONG PropertySetCount, IN PKSPROPERTY_SET PropertySet, IN PSUBDEVICE_DESCRIPTOR Descriptor)
Definition: undoc.cpp:81
LONG NTSTATUS
Definition: precomp.h:26
_In_ PIRP Irp
Definition: csq.h:116
#define IoCompleteRequest
Definition: irp.c:1240
Status
Definition: gdiplustypes.h:24
#define STATUS_NOT_FOUND
Definition: shellext.h:72
#define STATUS_PENDING
Definition: ntstatus.h:82
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
SUBDEVICE_DESCRIPTOR m_Descriptor
Definition: pin_wavepci.cpp:55
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2793
NTSYSAPI NTSTATUS WINAPI RtlStringFromGUID(REFGUID, PUNICODE_STRING)
#define IO_NO_INCREMENT
Definition: iotypes.h:598
PKSPROPERTY_SET FilterPropertySet
Definition: interfaces.hpp:210
#define STATUS_SUCCESS
Definition: shellext.h:65
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
Definition: iotypes.h:3128

◆ HandleKsStream()

NTSTATUS NTAPI CPortPinWavePci::HandleKsStream ( IN PIRP  Irp)
protected

Definition at line 527 of file pin_wavepci.cpp.

529 {
531  ULONG Data = 0;
533 
534  DPRINT("IPortPinWaveCyclic_HandleKsStream entered Total %u State %x MinData %u\n", m_TotalPackets, m_State, m_IrpQueue->NumData());
535 
536  Status = m_IrpQueue->AddMapping(Irp, &Data);
537 
538  if (NT_SUCCESS(Status))
539  {
540  if (m_Capture)
542  else
544 
545  if (m_State == KSSTATE_RUN)
546  {
547  // notify stream of new mapping
548  m_Stream->MappingAvailable();
549  }
550 
551  return STATUS_PENDING;
552  }
553 
554  return Status;
555 }
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID Data
Definition: wdfdevice.h:4527
LONG NTSTATUS
Definition: precomp.h:26
_In_ PIRP Irp
Definition: csq.h:116
PMINIPORTWAVEPCISTREAM m_Stream
Definition: pin_wavepci.cpp:40
Status
Definition: gdiplustypes.h:24
DWORDLONG PlayOffset
Definition: ksmedia.h:1250
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define STATUS_PENDING
Definition: ntstatus.h:82
IIrpQueue * m_IrpQueue
Definition: pin_wavepci.cpp:47
#define InterlockedIncrement
Definition: armddk.h:53
DWORDLONG WriteOffset
Definition: ksmedia.h:1251
KSAUDIO_POSITION m_Position
Definition: pin_wavepci.cpp:50
unsigned int ULONG
Definition: retypes.h:1
#define DPRINT
Definition: sndvol32.h:71
signed int * PLONG
Definition: retypes.h:5

◆ QueryInterface()

NTSTATUS NTAPI CPortPinWavePci::QueryInterface ( REFIID  InterfaceId,
PVOID Interface 
)

Definition at line 378 of file pin_wavepci.cpp.

381 {
382  //DPRINT("CPortPinWavePci::QueryInterface entered\n");
383 
384  if (IsEqualGUIDAligned(refiid, IID_IIrpTarget) ||
386  {
387  *Output = PVOID(PUNKNOWN((IIrpTarget*)this));
388  PUNKNOWN(*Output)->AddRef();
389  return STATUS_SUCCESS;
390  }
391 
392  if (IsEqualGUIDAligned(refiid, IID_IServiceSink))
393  {
394  *Output = PVOID(PSERVICESINK(this));
395  PUNKNOWN(*Output)->AddRef();
396  return STATUS_SUCCESS;
397  }
398 
399 
400  if (IsEqualGUIDAligned(refiid, IID_IPortWavePciStream))
401  {
402  *Output = PVOID(PPORTWAVEPCISTREAM(this));
403  PUNKNOWN(*Output)->AddRef();
404  return STATUS_SUCCESS;
405  }
406 
407  return STATUS_UNSUCCESSFUL;
408 }
IUnknown * PUNKNOWN
Definition: com_apitest.h:45
IPortWavePciStream * PPORTWAVEPCISTREAM
Definition: portcls.h:1588
IServiceSink * PSERVICESINK
Definition: portcls.h:569
#define IsEqualGUIDAligned(guid1, guid2)
Definition: wdm.template.h:235
void * PVOID
Definition: retypes.h:9
const GUID IID_IUnknown
ULONG AddRef()
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
Definition: arc.h:85
#define STATUS_SUCCESS
Definition: shellext.h:65

Friends And Related Function Documentation

◆ PinWavePciAllocatorFraming

NTSTATUS NTAPI PinWavePciAllocatorFraming ( IN PIRP  Irp,
IN PKSIDENTIFIER  Request,
IN OUT PVOID  Data 
)
friend

Definition at line 99 of file pin_wavepci.cpp.

103 {
106 
107  // get sub device descriptor
108  Descriptor = (PSUBDEVICE_DESCRIPTOR)KSPROPERTY_ITEM_IRP_STORAGE(Irp);
109 
110  // sanity check
112  PC_ASSERT(Descriptor->PortPin);
114 
115  // cast to pin impl
116  Pin = (CPortPinWavePci*)Descriptor->PortPin;
117 
118 
119  if (Request->Flags & KSPROPERTY_TYPE_GET)
120  {
121  // copy pin framing
122  RtlMoveMemory(Data, &Pin->m_AllocatorFraming, sizeof(KSALLOCATOR_FRAMING));
123 
124  Irp->IoStatus.Information = sizeof(KSALLOCATOR_FRAMING);
125  return STATUS_SUCCESS;
126  }
127 
128  // not supported
129  return STATUS_NOT_SUPPORTED;
130 }
return STATUS_NOT_SUPPORTED
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
Definition: wdfresource.h:339
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
if(dx==0 &&dy==0)
Definition: linetemp.h:174
#define KSPROPERTY_TYPE_GET
Definition: dmksctrl.h:42
#define RtlMoveMemory(Destination, Source, Length)
Definition: typedefs.h:264
#define PC_ASSERT(exp)
Definition: private.hpp:26
_In_ PIRP Irp
Definition: csq.h:116
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
Definition: fatprocs.h:424
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
#define STATUS_SUCCESS
Definition: shellext.h:65
struct SUBDEVICE_DESCRIPTOR * PSUBDEVICE_DESCRIPTOR
#define PC_ASSERT_IRQL(x)
Definition: private.hpp:30

◆ PinWavePciAudioPosition

NTSTATUS NTAPI PinWavePciAudioPosition ( IN PIRP  Irp,
IN PKSIDENTIFIER  Request,
IN OUT PVOID  Data 
)
friend

Definition at line 134 of file pin_wavepci.cpp.

138 {
141 
142  // get sub device descriptor
143  Descriptor = (PSUBDEVICE_DESCRIPTOR)KSPROPERTY_ITEM_IRP_STORAGE(Irp);
144 
145  // sanity check
147  PC_ASSERT(Descriptor->PortPin);
149 
150  // cast to pin impl
151  Pin = (CPortPinWavePci*)Descriptor->PortPin;
152 
153  //sanity check
154  PC_ASSERT(Pin->m_Stream);
155 
156  if (Request->Flags & KSPROPERTY_TYPE_GET)
157  {
158  // FIXME non multithreading-safe
159  // copy audio position
160  RtlMoveMemory(Data, &Pin->m_Position, sizeof(KSAUDIO_POSITION));
161 
162  DPRINT("Play %lu Record %lu\n", Pin->m_Position.PlayOffset, Pin->m_Position.WriteOffset);
163  Irp->IoStatus.Information = sizeof(KSAUDIO_POSITION);
164  return STATUS_SUCCESS;
165  }
166 
167  // not supported
168  return STATUS_NOT_SUPPORTED;
169 }
return STATUS_NOT_SUPPORTED
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
Definition: wdfresource.h:339
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
#define KSPROPERTY_TYPE_GET
Definition: dmksctrl.h:42
#define RtlMoveMemory(Destination, Source, Length)
Definition: typedefs.h:264
#define PC_ASSERT(exp)
Definition: private.hpp:26
_In_ PIRP Irp
Definition: csq.h:116
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
Definition: fatprocs.h:424
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
#define STATUS_SUCCESS
Definition: shellext.h:65
#define DPRINT
Definition: sndvol32.h:71
struct SUBDEVICE_DESCRIPTOR * PSUBDEVICE_DESCRIPTOR
#define PC_ASSERT_IRQL(x)
Definition: private.hpp:30

◆ PinWavePciDataFormat

NTSTATUS NTAPI PinWavePciDataFormat ( IN PIRP  Irp,
IN PKSIDENTIFIER  Request,
IN OUT PVOID  Data 
)
friend

Definition at line 260 of file pin_wavepci.cpp.

264 {
268  PIO_STACK_LOCATION IoStack;
269 
270  // get current irp stack location
272 
273  // get sub device descriptor
274  Descriptor = (PSUBDEVICE_DESCRIPTOR)KSPROPERTY_ITEM_IRP_STORAGE(Irp);
275 
276  // sanity check
278  PC_ASSERT(Descriptor->PortPin);
279 
280  // cast to pin impl
281  Pin = (CPortPinWavePci*)Descriptor->PortPin;
282 
283  //sanity check
284  PC_ASSERT(Pin->m_Stream);
285  PC_ASSERT(Pin->m_Format);
286 
287  if (Request->Flags & KSPROPERTY_TYPE_SET)
288  {
289  // try to change data format
290  PKSDATAFORMAT NewDataFormat, DataFormat = (PKSDATAFORMAT)Irp->UserBuffer;
291  ULONG Size = min(Pin->m_Format->FormatSize, DataFormat->FormatSize);
292 
293  if (RtlCompareMemory(DataFormat, Pin->m_Format, Size) == Size)
294  {
295  // format is identical
296  Irp->IoStatus.Information = DataFormat->FormatSize;
297  return STATUS_SUCCESS;
298  }
299 
300  // new change request
301  PC_ASSERT(Pin->m_State == KSSTATE_STOP);
302  // FIXME queue a work item when Irql != PASSIVE_LEVEL
304 
305  // allocate new data format
306  NewDataFormat = (PKSDATAFORMAT)AllocateItem(NonPagedPool, DataFormat->FormatSize, TAG_PORTCLASS);
307  if (!NewDataFormat)
308  {
309  // not enough memory
310  return STATUS_NO_MEMORY;
311  }
312 
313  // copy new data format
314  RtlMoveMemory(NewDataFormat, DataFormat, DataFormat->FormatSize);
315 
316  // set new format
317  Status = Pin->m_Stream->SetFormat(NewDataFormat);
318  if (NT_SUCCESS(Status))
319  {
320  // free old format
321  FreeItem(Pin->m_Format, TAG_PORTCLASS);
322 
323  // store new format
324  Pin->m_Format = NewDataFormat;
325  Irp->IoStatus.Information = NewDataFormat->FormatSize;
326 
327 #if 0
328  PC_ASSERT(NewDataFormat->FormatSize == sizeof(KSDATAFORMAT_WAVEFORMATEX));
332 
333 
334  DPRINT("NewDataFormat: Channels %u Bits %u Samples %u\n", ((PKSDATAFORMAT_WAVEFORMATEX)NewDataFormat)->WaveFormatEx.nChannels,
335  ((PKSDATAFORMAT_WAVEFORMATEX)NewDataFormat)->WaveFormatEx.wBitsPerSample,
336  ((PKSDATAFORMAT_WAVEFORMATEX)NewDataFormat)->WaveFormatEx.nSamplesPerSec);
337 #endif
338 
339  }
340  else
341  {
342  // failed to set format
343  FreeItem(NewDataFormat, TAG_PORTCLASS);
344  }
345 
346 
347  // done
348  return Status;
349  }
350  else if (Request->Flags & KSPROPERTY_TYPE_GET)
351  {
352  // get current data format
353  PC_ASSERT(Pin->m_Format);
354 
355  if (Pin->m_Format->FormatSize > IoStack->Parameters.DeviceIoControl.OutputBufferLength)
356  {
357  // buffer too small
358  Irp->IoStatus.Information = Pin->m_Format->FormatSize;
359  return STATUS_MORE_ENTRIES;
360  }
361  // copy data format
362  RtlMoveMemory(Data, Pin->m_Format, Pin->m_Format->FormatSize);
363  // store result size
364  Irp->IoStatus.Information = Pin->m_Format->FormatSize;
365 
366  // done
367  return STATUS_SUCCESS;
368  }
369 
370  // unsupported request
371  return STATUS_NOT_SUPPORTED;
372 }
#define KeGetCurrentIrql()
Definition: env_spec_w32.h:706
return STATUS_NOT_SUPPORTED
#define KSDATAFORMAT_SUBTYPE_PCM
Definition: ksmedia.h:1021
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
Definition: wdfresource.h:339
#define TAG_PORTCLASS
Definition: private.hpp:24
PVOID AllocateItem(IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes)
Definition: misc.c:30
LONG NTSTATUS
Definition: precomp.h:26
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
#define KSPROPERTY_TYPE_GET
Definition: dmksctrl.h:42
#define RtlMoveMemory(Destination, Source, Length)
Definition: typedefs.h:264
#define KSDATAFORMAT_SPECIFIER_WAVEFORMATEX
Definition: ksmedia.h:1031
#define PC_ASSERT(exp)
Definition: private.hpp:26
#define IsEqualGUIDAligned(guid1, guid2)
Definition: wdm.template.h:235
VOID FreeItem(IN PVOID Item)
Definition: misc.c:43
_In_ PIRP Irp
Definition: csq.h:116
Status
Definition: gdiplustypes.h:24
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
Definition: fatprocs.h:424
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
#define KSDATAFORMAT_TYPE_AUDIO
Definition: ksmedia.h:983
#define STATUS_MORE_ENTRIES
Definition: udferr_usr.h:124
__drv_aliasesMem FORCEINLINE PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(_In_ PIRP Irp)
Definition: iofuncs.h:2793
#define STATUS_NO_MEMORY
Definition: ntstatus.h:260
#define min(a, b)
Definition: monoChain.cc:55
unsigned int ULONG
Definition: retypes.h:1
#define STATUS_SUCCESS
Definition: shellext.h:65
#define DPRINT
Definition: sndvol32.h:71
struct _NAMED_PIPE_CREATE_PARAMETERS * Parameters
Definition: iotypes.h:3128
#define KSPROPERTY_TYPE_SET
Definition: dmksctrl.h:43
struct SUBDEVICE_DESCRIPTOR * PSUBDEVICE_DESCRIPTOR
#define RtlCompareMemory(s1, s2, l)
Definition: env_spec_w32.h:465
KSDATAFORMAT * PKSDATAFORMAT

◆ PinWavePciState

NTSTATUS NTAPI PinWavePciState ( IN PIRP  Irp,
IN PKSIDENTIFIER  Request,
IN OUT PVOID  Data 
)
friend

Definition at line 174 of file pin_wavepci.cpp.

178 {
182  PVOID FirstTag, LastTag;
183  ULONG MappingsRevoked;
185 
186  // get sub device descriptor
187  Descriptor = (PSUBDEVICE_DESCRIPTOR)KSPROPERTY_ITEM_IRP_STORAGE(Irp);
188 
189  // sanity check
191  PC_ASSERT(Descriptor->PortPin);
193 
194  // cast to pin impl
195  Pin = (CPortPinWavePci*)Descriptor->PortPin;
196 
197  //sanity check
198  PC_ASSERT(Pin->m_Stream);
199 
200  if (Request->Flags & KSPROPERTY_TYPE_SET)
201  {
202  // try set stream
203  Status = Pin->m_Stream->SetState(*State);
204 
205  DPRINT("Setting state %u %x\n", *State, Status);
206  if (NT_SUCCESS(Status))
207  {
208  // store new state
209  Pin->m_State = *State;
210  if (Pin->m_ConnectDetails->Interface.Id == KSINTERFACE_STANDARD_LOOPED_STREAMING && Pin->m_State == KSSTATE_STOP)
211  {
212  // FIXME
213  // complete with successful state
214  Pin->m_IrpQueue->CancelBuffers();
215  while(Pin->m_IrpQueue->GetAcquiredTagRange(&FirstTag, &LastTag))
216  {
217  Status = Pin->m_Stream->RevokeMappings(FirstTag, LastTag, &MappingsRevoked);
218  DPRINT("RevokeMappings Status %lx MappingsRevoked: %lu\n", Status, MappingsRevoked);
220  }
221  Pin->m_Position.PlayOffset = 0;
222  Pin->m_Position.WriteOffset = 0;
223  }
224  else if (Pin->m_State == KSSTATE_STOP)
225  {
226  Pin->m_IrpQueue->CancelBuffers();
227  while(Pin->m_IrpQueue->GetAcquiredTagRange(&FirstTag, &LastTag))
228  {
229  Status = Pin->m_Stream->RevokeMappings(FirstTag, LastTag, &MappingsRevoked);
230  DPRINT("RevokeMappings Status %lx MappingsRevoked: %lu\n", Status, MappingsRevoked);
232  }
233  Pin->m_Position.PlayOffset = 0;
234  Pin->m_Position.WriteOffset = 0;
235  }
236  // store result
237  Irp->IoStatus.Information = sizeof(KSSTATE);
238 
239  }
240  // store result
241  Irp->IoStatus.Information = sizeof(KSSTATE);
242  return Status;
243  }
244  else if (Request->Flags & KSPROPERTY_TYPE_GET)
245  {
246  // get current stream state
247  *State = Pin->m_State;
248  // store result
249  Irp->IoStatus.Information = sizeof(KSSTATE);
250 
251  return STATUS_SUCCESS;
252  }
253 
254  // unsupported request
255  return STATUS_NOT_SUPPORTED;
256 }
return STATUS_NOT_SUPPORTED
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
Definition: wdfresource.h:339
LONG NTSTATUS
Definition: precomp.h:26
_In_ ULONG _In_ ULONG State
Definition: potypes.h:516
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
#define KSPROPERTY_TYPE_GET
Definition: dmksctrl.h:42
#define PC_ASSERT(exp)
Definition: private.hpp:26
enum KSSTATE * PKSSTATE
_In_ PIRP Irp
Definition: csq.h:116
Status
Definition: gdiplustypes.h:24
IN PDCB IN VBO IN ULONG IN BOOLEAN Pin
Definition: fatprocs.h:424
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
KSSTATE
Definition: ks.h:1214
unsigned int ULONG
Definition: retypes.h:1
#define STATUS_SUCCESS
Definition: shellext.h:65
#define DPRINT
Definition: sndvol32.h:71
#define KSPROPERTY_TYPE_SET
Definition: dmksctrl.h:43
struct SUBDEVICE_DESCRIPTOR * PSUBDEVICE_DESCRIPTOR
VOID NTAPI KeStallExecutionProcessor(IN ULONG MicroSeconds)
Definition: ntoskrnl.c:81
#define PC_ASSERT_IRQL(x)
Definition: private.hpp:30

Member Data Documentation

◆ IMP_IPortPinWavePci

CPortPinWavePci::IMP_IPortPinWavePci

Definition at line 22 of file pin_wavepci.cpp.

◆ IMP_IPortWavePciStream

CPortPinWavePci::IMP_IPortWavePciStream

Definition at line 24 of file pin_wavepci.cpp.

◆ IMP_IServiceSink

CPortPinWavePci::IMP_IServiceSink

Definition at line 23 of file pin_wavepci.cpp.

◆ m_AllocatorFraming

KSALLOCATOR_FRAMING CPortPinWavePci::m_AllocatorFraming
protected

Definition at line 57 of file pin_wavepci.cpp.

◆ m_bUsePrefetch

BOOL CPortPinWavePci::m_bUsePrefetch
protected

Definition at line 53 of file pin_wavepci.cpp.

◆ m_Capture

BOOL CPortPinWavePci::m_Capture
protected

Definition at line 45 of file pin_wavepci.cpp.

Referenced by HandleKsStream().

◆ m_ConnectDetails

KSPIN_CONNECT* CPortPinWavePci::m_ConnectDetails
protected

Definition at line 43 of file pin_wavepci.cpp.

◆ m_Descriptor

SUBDEVICE_DESCRIPTOR CPortPinWavePci::m_Descriptor
protected

Definition at line 55 of file pin_wavepci.cpp.

Referenced by HandleKsProperty().

◆ m_DeviceObject

PDEVICE_OBJECT CPortPinWavePci::m_DeviceObject
protected

Definition at line 46 of file pin_wavepci.cpp.

◆ m_DmaChannel

PDMACHANNEL CPortPinWavePci::m_DmaChannel
protected

Definition at line 39 of file pin_wavepci.cpp.

◆ m_Filter

IPortFilterWavePci* CPortPinWavePci::m_Filter
protected

Definition at line 35 of file pin_wavepci.cpp.

◆ m_Format

PKSDATAFORMAT CPortPinWavePci::m_Format
protected

Definition at line 42 of file pin_wavepci.cpp.

◆ m_IrpQueue

IIrpQueue* CPortPinWavePci::m_IrpQueue
protected

Definition at line 47 of file pin_wavepci.cpp.

Referenced by HandleKsStream().

◆ m_KsPinDescriptor

KSPIN_DESCRIPTOR* CPortPinWavePci::m_KsPinDescriptor
protected

Definition at line 36 of file pin_wavepci.cpp.

◆ m_Miniport

PMINIPORTWAVEPCI CPortPinWavePci::m_Miniport
protected

Definition at line 37 of file pin_wavepci.cpp.

◆ m_Port

IPortWavePci* CPortPinWavePci::m_Port
protected

Definition at line 34 of file pin_wavepci.cpp.

◆ m_Position

KSAUDIO_POSITION CPortPinWavePci::m_Position
protected

Definition at line 50 of file pin_wavepci.cpp.

Referenced by HandleKsStream().

◆ m_PrefetchOffset

ULONG CPortPinWavePci::m_PrefetchOffset
protected

Definition at line 54 of file pin_wavepci.cpp.

◆ m_ServiceGroup

PSERVICEGROUP CPortPinWavePci::m_ServiceGroup
protected

Definition at line 38 of file pin_wavepci.cpp.

◆ m_State

KSSTATE CPortPinWavePci::m_State
protected

Definition at line 41 of file pin_wavepci.cpp.

Referenced by HandleKsStream().

◆ m_StopCount

ULONG CPortPinWavePci::m_StopCount
protected

Definition at line 51 of file pin_wavepci.cpp.

◆ m_Stream

PMINIPORTWAVEPCISTREAM CPortPinWavePci::m_Stream
protected

Definition at line 40 of file pin_wavepci.cpp.

Referenced by HandleKsStream().

◆ m_TotalPackets

ULONG CPortPinWavePci::m_TotalPackets
protected

Definition at line 49 of file pin_wavepci.cpp.

Referenced by HandleKsStream().


The documentation for this class was generated from the following file: