#include <wavepcistream.h>
|
| DECLARE_STD_UNKNOWN () |
|
| DEFINE_STD_CONSTRUCTOR (CMiniportWaveICHStream) |
|
| ~CMiniportWaveICHStream () |
|
NTSTATUS | Init_ () |
|
void | PowerChangeNotify_ (IN POWER_STATE NewState) |
|
void | InterruptServiceRoutine () |
|
| ~CMiniportStream () |
|
void | ResetDMA (void) |
|
void | PauseDMA (void) |
|
void | ResumeDMA (ULONG state=DMA_ENGINE_ON) |
|
int | GetBuffPos (DWORD *buffPos) |
|
void | WriteReg8 (ULONG addr, UCHAR data) |
|
void | WriteReg16 (ULONG addr, USHORT data) |
|
void | WriteReg32 (ULONG addr, ULONG data) |
|
UCHAR | ReadReg8 (ULONG addr) |
|
USHORT | ReadReg16 (ULONG addr) |
|
ULONG | ReadReg32 (ULONG addr) |
|
| STDMETHODIMP_ (NTSTATUS) SetFormat(_In_ PKSDATAFORMAT Format) |
|
void | PowerChangeNotify (IN POWER_STATE NewState) |
|
ULONG | GetCurrentSampleRate (void) |
|
NTSTATUS | Init (IN CMiniport *Miniport_, IN PUNKNOWN PortStream, IN WavePins Pin_, IN BOOLEAN Capture_, IN PKSDATAFORMAT DataFormat_, OUT PSERVICEGROUP *ServiceGroup_) |
|
NTSTATUS | NonDelegatingQueryInterface (_In_ REFIID Interface, _COM_Outptr_ PVOID *Object, _In_ REFIID iStream, _In_ PUNKNOWN stream) |
|
NTSTATUS | SetState (_In_ KSSTATE State) |
|
NTSTATUS | NormalizePhysicalPosition (_Inout_ PLONGLONG PhysicalPosition) |
|
PVOID | BDList_Alloc () |
|
void | BDList_Free () |
|
void | UpdateLviCyclic () |
|
Definition at line 57 of file wavepcistream.h.
◆ ~CMiniportWaveICHStream()
CMiniportWaveICHStream::~CMiniportWaveICHStream |
( |
| ) |
|
◆ DECLARE_STD_UNKNOWN()
CMiniportWaveICHStream::DECLARE_STD_UNKNOWN |
( |
| ) |
|
◆ DEFINE_STD_CONSTRUCTOR()
◆ GetNewMappings()
Definition at line 553 of file wavepcistream.cpp.
558 ULONG ulBytesMapped = 0;
559 int nInsertMappings = 0;
562 DOUT (
DBG_PRINT, (
"[CMiniportWaveICHStream::GetNewMappings]"));
580 DOUT (
DBG_DMA, (
"[GetNewMappings] We starved ... Head %d, Tail %d, Entries %d.",
595 ULONG ulBufferLength;
601 NEW_MAPPINGS_AVAILBLE_MAYBE:
627 goto NEW_MAPPINGS_AVAILBLE_MAYBE;
637 if (ulBufferLength > 0x1FFFE)
640 DOUT (
DBG_ERROR, (
"[GetNewMappings] Buffer length too long!"));
641 ulBufferLength = 0x1FFFE;
668 ulBytesMapped += ulBufferLength;
711 DOUT (
DBG_DMA, (
"[GetNewMappings] Got %d mappings.", nInsertMappings));
712 DOUT (
DBG_DMA, (
"[GetNewMappings] Head %d, Tail %d, Entries %d.",
VOID NTAPI KeAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL OldIrql)
#define DOUT(lvl, strings)
void WriteReg8(ULONG addr, UCHAR data)
USHORT ReadReg16(ULONG addr)
_Must_inspect_result_ _In_ ULONG Flags
#define NT_SUCCESS(StatCode)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
const int MAX_BDL_ENTRIES
_In_ ULONG _In_ ULONG ulTag
ULONGLONG TotalBytesMapped
#define KeReleaseSpinLock(sl, irql)
void ResumeDMA(ULONG state=DMA_ENGINE_ON)
const int DMA_ENGINE_PAUSE
Referenced by STDMETHODIMP_().
◆ Init_()
NTSTATUS CMiniportWaveICHStream::Init_ |
( |
| ) |
|
|
virtual |
Reimplemented from CMiniportStream.
Definition at line 99 of file wavepcistream.cpp.
135 PreFetchOffset->SetPreFetchOffset(32 * (
DataFormat->WaveFormatEx.nChannels * 2));
#define STATUS_INSUFFICIENT_RESOURCES
IPreFetchOffset * PPREFETCHOFFSET
#define DOUT(lvl, strings)
FORCEINLINE VOID KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
#define NT_SUCCESS(StatCode)
◆ InterruptServiceRoutine()
void CMiniportWaveICHStream::InterruptServiceRoutine |
( |
| ) |
|
|
virtual |
◆ PowerChangeNotify_()
Reimplemented from CMiniportStream.
Definition at line 203 of file wavepcistream.cpp.
VOID NTAPI KeAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL OldIrql)
void WriteReg8(ULONG addr, UCHAR data)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
#define KeReleaseSpinLock(sl, irql)
◆ ReleaseUsedMappings()
NTSTATUS CMiniportWaveICHStream::ReleaseUsedMappings |
( |
void |
| ) |
|
|
private |
Definition at line 735 of file wavepcistream.cpp.
738 int nMappingsReleased = 0;
740 DOUT (
DBG_PRINT, (
"[CMiniportWaveICHStream::ReleaseUsedMappings]"));
774 DOUT (
DBG_ERROR, (
"[ReleaseUsedMappings] CIV out of range!"));
785 DOUT (
DBG_ERROR, (
"[ReleaseUsedMappings] CIV out of range!"));
813 DOUT (
DBG_ERROR, (
"[ReleaseUsedMappings] Inconsitency: Tail reached and Entries != 1."));
855 if (nMappingsReleased)
860 DOUT (
DBG_DMA, (
"[ReleaseUsedMappings] Head %d, Tail %d, Entries %d.",
VOID NTAPI KeAcquireSpinLock(PKSPIN_LOCK SpinLock, PKIRQL OldIrql)
#define DOUT(lvl, strings)
USHORT ReadReg16(ULONG addr)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
const int MAX_BDL_ENTRIES
_In_ ULONG _In_ ULONG ulTag
ULONGLONG TotalBytesReleased
UCHAR ReadReg8(ULONG addr)
#define KeReleaseSpinLock(sl, irql)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Referenced by STDMETHODIMP_().
◆ Wave()
◆ IMP_IMiniportWavePciStream
CMiniportWaveICHStream::IMP_IMiniportWavePciStream |
◆ m_inGetMapping
BOOL CMiniportWaveICHStream::m_inGetMapping |
|
private |
◆ MapLock
◆ stBDList
tBDList CMiniportWaveICHStream::stBDList |
|
private |
◆ TotalBytesMapped
ULONGLONG CMiniportWaveICHStream::TotalBytesMapped |
|
private |
◆ TotalBytesReleased
ULONGLONG CMiniportWaveICHStream::TotalBytesReleased |
|
private |
The documentation for this class was generated from the following files: