我想使用以下在portcls.h中定义的IMiniportWaveRTStream :: AllocateAudioBuffer方法。
NTSTATUS AllocateAudioBuffer(
[in] ULONG RequestedSize,
[out] PMDL *AudioBufferMdl,
[out] ULONG *ActualSize,
[out] ULONG *OffsetFromFirstPage,
[out] MEMORY_CACHING_TYPE *CacheType
);
但我想在C文件中使用它。我找到了一个实现相同但有一个额外参数的结构。
NTSTATUS AllocateAudioBuffer(
INTERFACE THIS,
[in] ULONG RequestedSize,
[out] PMDL *AudioBufferMdl,
[out] ULONG *ActualSize,
[out] ULONG *OffsetFromFirstPage,
[out] MEMORY_CACHING_TYPE *CacheType
);
接口结构定义为
typedef struct _INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
// interface specific entries go here
} INTERFACE, *PINTERFACE;
这个INTERFACE也是指什么?以及如何获得它的参考。
参考:https://msdn.microsoft.com/en-us/library/windows/hardware/ff536744(v=vs.85).aspx