• 大小: 302KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: 其他
  • 标签:

资源简介

这是我为某公司开发的虚拟声卡驱动,现提供代码供有需要的朋友共享

资源截图

代码片段和文件信息

//By Fanxiushu 2011-10-24

#include “common.h“
#include “top_wav.h“

///common function
PWAVEFORMATEX  GetWaveFormatEx( IN  PKSDATAFORMAT pDataFormat  )
{

    PWAVEFORMATEX           pWfx = NULL;
    
    // If this is a known dataformat extract the waveformat info.
    //
    if
    ( 
        pDataFormat &&
        ( IsEqualGUIDAligned(pDataFormat->MajorFormat 
                KSDATAFORMAT_TYPE_AUDIO)             &&
          ( IsEqualGUIDAligned(pDataFormat->Specifier 
                KSDATAFORMAT_SPECIFIER_WAVEFORMATEX) ||
            IsEqualGUIDAligned(pDataFormat->Specifier 
                KSDATAFORMAT_SPECIFIER_DSOUND) ) )
    )
    {
        pWfx = PWAVEFORMATEX(pDataFormat + 1);

        if (IsEqualGUIDAligned(pDataFormat->Specifier 
                KSDATAFORMAT_SPECIFIER_DSOUND))
        {
            PKSDSOUND_BUFFERDESC    pwfxds;

            pwfxds = PKSDSOUND_BUFFERDESC(pDataFormat + 1);
            pWfx = &pwfxds->WaveFormatEx;
        }
    }

    return pWfx;

NTSTATUS ValidateFormat(IN  PKSDATAFORMAT  pDataFormat)
{
NTSTATUS status = STATUS_INVALID_PARAMETER;
PWAVEFORMATEX               pwfx;

    pwfx = GetWaveFormatEx(pDataFormat);
    if (pwfx)
    {
        if (IS_VALID_WAVEFORMATEX_GUID(&pDataFormat->SubFormat))
        {
            USHORT wfxID = EXTRACT_WAVEFORMATEX_ID(&pDataFormat->SubFormat);

            switch (wfxID)
            {
                case WAVE_FORMAT_PCM:
                {
                    switch (pwfx->wFormatTag)
                    {
                        case WAVE_FORMAT_PCM:
                        {
                            if( pwfx->nChannels>=MIN_CHANNELS&&pwfx->nChannels<=MAX_CHANNELS_PCM &&
pwfx->wBitsPerSample>=MIN_BITS_PER_SAMPLE_PCM && pwfx->wBitsPerSample<=MAX_BITS_PER_SAMPLE_PCM &&
pwfx->nSamplesPerSec>=MIN_SAMPLE_RATE && pwfx->nSamplesPerSec<=MAX_SAMPLE_RATE )
{
status = STATUS_SUCCESS; 
}
                            break;
                        }
                    }
                    break;
                }

                default:
                    DPT(“Invalid format EXTRACT_WAVEFORMATEX_ID!“);
                    break;
            }
        }
        else
        {
            DPT(“Invalid pDataFormat->SubFormat!“ );
        }
    }

    return status;


///copy from MSVAD
NTSTATUS                        
PropertyHandler_BasicSupport

    IN PPCPROPERTY_REQUEST         PropertyRequest
    IN ULONG                       Flags
    IN DWORD                       PropTypeSetId


{

    ASSERT(Flags & KSPROPERTY_TYPE_BASICSUPPORT);

    NTSTATUS                    ntStatus = STATUS_INVALID_PARAMETER;

    if (PropertyRequest->ValueSize >= sizeof(KSPROPERTY_DEscriptION))
    {
        // if return buffer can hold a KSPROPERTY_DEscriptION return it
        //
        PKSPROPERTY_DEscriptION PropDesc = 
            

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3073  2011-11-04 14:28  driver\buildfre_win7_x86.log

     文件      14669  2011-10-27 16:36  driver\common.cpp

     文件       3914  2011-10-27 16:38  driver\common.h

     文件       2743  2011-10-27 16:24  driver\data_trans.cpp

     文件       1281  2011-11-04 12:07  driver\main.cpp

     文件        675  2011-10-24 18:05  driver\makefile

     文件      96798  2011-11-04 14:02  driver\objfre_win7_x86\i386\common.obj

     文件      77546  2011-11-04 14:02  driver\objfre_win7_x86\i386\data_trans.obj

     文件      75700  2011-11-04 14:02  driver\objfre_win7_x86\i386\main.obj

     文件       1003  2011-11-04 14:07  driver\objfre_win7_x86\i386\main.obj.oacr.root.x86fre.pft.xml

     文件      98859  2011-11-04 14:02  driver\objfre_win7_x86\i386\stream.obj

     文件        599  2011-11-04 14:07  driver\objfre_win7_x86\i386\stream.obj.oacr.root.x86fre.pft.xml

     文件      94902  2011-11-04 14:02  driver\objfre_win7_x86\i386\topo.obj

     文件     192512  2011-11-04 14:02  driver\objfre_win7_x86\i386\vc90.pdb

     文件      97083  2011-11-04 14:02  driver\objfre_win7_x86\i386\wave.obj

     文件        908  2011-11-04 14:28  driver\objfre_win7_x86\i386\wav_mixer.res

     文件        460  2011-11-04 14:28  driver\objfre_win7_x86\i386\_objects.mac

     文件        456  2011-11-04 14:27  driver\resource.h

     文件        490  2011-10-27 15:20  driver\sources

     文件      10524  2011-11-02 22:10  driver\stream.cpp

     文件       1845  2011-10-26 16:34  driver\stream.h

     文件       9804  2011-11-04 13:36  driver\topo.cpp

     文件      13007  2011-10-27 15:39  driver\toptable.h

     文件       1808  2011-10-27 15:09  driver\top_wav.h

     文件      10922  2011-11-02 22:11  driver\wave.cpp

     文件       6038  2010-02-08 20:06  driver\wavtable.h

     文件      36636  2011-11-04 14:28  driver\wav_mixer.aps

     文件       1286  2011-11-04 14:37  driver\wav_mixer.cat

     文件       4191  2011-11-04 13:38  driver\wav_mixer.inf

    .CA....    461824  2011-11-04 14:28  driver\wav_mixer.pdb

............此处省略8个文件信息

评论

共有 条评论

相关资源