54 DPRINT(
"IPortWaveRTStream_fnQueryInterface entered\n");
69 CPortWaveRTStreamInit::AllocatePagesForMdl(
78 CPortWaveRTStreamInit::AllocateContiguousPagesForMdl(
90 DPRINT(
"MmAllocateContiguousMemorySpecifyCache failed\n");
101 DPRINT(
"MmAllocatePagesForMdl failed\n");
119 CPortWaveRTStreamInit::MapAllocatedPages(
128 CPortWaveRTStreamInit::UnmapAllocatedPages(
137 CPortWaveRTStreamInit::FreePagesFromMdl(
146 CPortWaveRTStreamInit::GetPhysicalPagesCount(
154 CPortWaveRTStreamInit::GetPhysicalPageAddress(
166 DPRINT(
"OutOfBounds: Pages %u Index %u\n", Pages,
Index);
189 Status =
This->QueryInterface(IID_IPortWaveRTStream, (
PVOID*)OutStream);
IPortWaveRTStream * PPORTWAVERTSTREAM
#define STATUS_INSUFFICIENT_RESOURCES
IN BOOLEAN OUT PSTR Buffer
NTSTATUS NewPortWaveRTStream(PPORTWAVERTSTREAM *OutStream)
#define MmGetSystemAddressForMdlSafe(_Mdl, _Priority)
STDMETHODIMP_(ULONG) Release()
#define IsEqualGUIDAligned(guid1, guid2)
PVOID NTAPI MmMapLockedPagesSpecifyCache(IN PMDL Mdl, IN KPROCESSOR_MODE AccessMode, IN MEMORY_CACHING_TYPE CacheType, IN PVOID BaseAddress, IN ULONG BugCheckOnFailure, IN ULONG Priority)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
_Inout_ PMDL MemoryDescriptorList
VOID NTAPI MmUnmapLockedPages(IN PVOID BaseAddress, IN PMDL Mdl)
VOID NTAPI MmFreePagesFromMdl(IN PMDL Mdl)
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_opt_ PHYSICAL_ADDRESS _In_ MEMORY_CACHING_TYPE CacheType
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(_Va, _Size)
virtual ~CPortWaveRTStreamInit()
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
#define NT_SUCCESS(StatCode)
_In_ WDFCOLLECTION _In_ ULONG Index
#define STATUS_UNSUCCESSFUL
#define InterlockedDecrement
IMP_IPortWaveRTStreamInit
NTSYSAPI ULONGLONG WINAPI RtlConvertUlongToLargeInteger(ULONG)
#define InterlockedIncrement
IN PVOID IN PVOID IN USHORT IN USHORT IN PINTERFACE Interface
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS HighAddress
STDMETHODIMP QueryInterface(REFIID InterfaceId, PVOID *Interface)
#define MmGetMdlByteCount(_Mdl)
CPortWaveRTStreamInit(IUnknown *OuterUnknown)
static ULONG WINAPI AddRef(IStream *iface)
_In_ WDFDEVICE _In_ PVOID _In_opt_ PMDL Mdl
VOID NTAPI MmFreeContiguousMemorySpecifyCache(IN PVOID BaseAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType)
PHYSICAL_ADDRESS NTAPI MmGetPhysicalAddress(IN PVOID Address)
enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE
PMDL NTAPI MmAllocatePagesForMdl(IN PHYSICAL_ADDRESS LowAddress, IN PHYSICAL_ADDRESS HighAddress, IN PHYSICAL_ADDRESS SkipBytes, IN SIZE_T TotalBytes)
STDMETHODIMP_(ULONG) AddRef()
_Must_inspect_result_ _In_ PHYSICAL_ADDRESS _In_ PHYSICAL_ADDRESS _In_ SIZE_T TotalBytes
PVOID NTAPI MmAllocateContiguousMemorySpecifyCache(IN SIZE_T NumberOfBytes, IN PHYSICAL_ADDRESS LowestAcceptableAddress OPTIONAL, IN PHYSICAL_ADDRESS HighestAcceptableAddress, IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL, IN MEMORY_CACHING_TYPE CacheType OPTIONAL)