分配音频缓冲区[Windows驱动程序]

时间:2015-03-31 00:10:12

标签: c windows audio driver

我想使用以下在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

0 个答案:

没有答案