Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Když implementujete ovladač pro offloadovaný zvuk, vyvíjíte ovladač, který dokáže zpracovávat offloadované streamy zvuku a zpřístupnit tuto schopnost zvukovému systému Windows.
Téma představuje podrobnosti implementace zvukového ovladače vyvinutého pro zvukový adaptér schopný zpracovávat audio streamy hardwareově přenesené.
Tato další témata v této části popisují problémy, které byste měli zvážit při vývoji zvukového ovladače pro zvukový adaptér, jenž implementuje hardwarový zvukový modul k zpracovávání přenesených zvukových datových proudů.
Rozhraní pomocných rutin portcls pro odlehčené zpracování zvuku
Hlášení chyb pro přenesený zvuk
Snižování zátěže hardwaru – topologie filtru KS
Systém Windows podporuje použití zvukového adaptéru, který může ke zpracování zvukových proudů zvuku používat hardwarový zvukový modul na desce. Při vývoji takového zvukového adaptéru musí přidružený zvukový ovladač zpřístupnit tento fakt zvukovému systému uživatelského režimu určitým způsobem, aby mohl zvukový systém zjišťovat, používat a řádně vystavit funkce tohoto adaptéru a jeho ovladače.
Identifikátor GUID KSNODETYPE_AUDIO_ENGINE pro popisovače uzlů
Pokud je zvukový adaptér schopný zpracovávat offloadované zvukové streamy, zvukový ovladač adaptéru tuto schopnost zpřístupní pomocí uzlu v KS filtru adaptéru.
Pokud je zvukový adaptér schopný zpracovávat offloadované zvukové streamy, zvukový ovladač adaptéru tuto schopnost zpřístupňuje pomocí určitého uzlu v KS-filtru adaptéru.
Každý uzel v cestě ke zvukovému streamu má popisovač uzlu, pro hardware mimo zatížení musí ovladač nastavit identifikátor GUID typu na KSNODETYPE_AUDIO_ENGINE.
Tady je příklad konfigurace popisovače uzlu pro tento uzel:
typedef struct _KSNODE_DESCRIPTOR {
const KSAUTOMATION_TABLE *AutomationTable; // drv specific
const GUID *Type; // must be set to KSNODETYPE_AUDIO_ENGINE
const GUID *Name; // drv specific (KSNODETYPE_AUDIO_ENGINE?)
} KSNODE_DESCRIPTOR, *PKSNODE_DESCRIPTOR;
Pokud je identifikátor GUID názvu nastavený na KSNODETYPE_AUDIO_ENGINE, musíte pro tento uzel vytvořit výchozí řetězec názvu. Tento řetězec pak přidáte do souboru ks.inf, aby se při instalaci ovladače řetězec mohl použít k naplnění klíče registru MediaCategories .
Definice identifikátoru GUID pro typ uzlu , KSNODETYPE_AUDIO_ENGINE, je následující:
Code style
#define STATIC_KSNODETYPE_AUDIO_ENGINE\
0x35caf6e4, 0xf3b3, 0x4168, 0xbb, 0x4b, 0x55, 0xe7, 0x7a, 0x46, 0x1c, 0x7e
DEFINE_GUIDSTRUCT("35CAF6E4-F3B3-4168-BB4B-55E77A461C7E", KSNODETYPE_AUDIO_ENGINE);
#define KSNODETYPE_AUDIO_ENGINE DEFINE_GUIDNAMED(KSNODETYPE_AUDIO_ENGINE)
Další informace najdete v souboru hlavičkový ksmedia.h.
A na základě předchozích informací může popisovač miniportového uzlu vypadat takto:
PCNODE_DESCRIPTOR MiniportNodes[] =
{
// KSNODE_WAVE_AUDIO_ENGINE
{
0, // Flags
NULL, // AutomationTable
&KSNODETYPE_AUDIO_ENGINE, // Type KSNODETYPE_AUDIO_ENGINE
NULL // Name
}
};
Vlastnost KSPROPSETID_AudioEngine KS nastavená pro zvukové moduly
Sada vlastností KSPROPSETID_AudioEngine slouží k podpoře hardwarových zvukových modulů a zpracování zvuku se snižováním zatížení hardwaru. Ovladač adaptéru, který může zpracovávat přesměrované zvukové streamy, musí podporovat vlastnosti v této nové sadě vlastností.
Sada vlastností KSPROPSETID_AudioEngine je definována takto:
#define STATIC_KSPROPSETID_AudioEngine\
0x3A2F82DCL, 0x886F, 0x4BAA, 0x9E, 0xB4, 0x8, 0x2B, 0x90, 0x25, 0xC5, 0x36
DEFINE_GUIDSTRUCT("3A2F82DC-886F-4BAA-9EB4-082B9025C536", KSPROPSETID_AudioEngine);
#define KSPROPSETID_AudioEngine DEFINE_GUIDNAMED(KSPROPSETID_AudioEngine)
Názvy vlastností v této sadě vlastností jsou definovány ve výčtu KSPROPERTY_AUDIOENGINE, a ovladač musí podporovat tyto názvy.
Tady jsou vlastnosti sady vlastností KSPROPSETID_AudioEngine :
KSPROPERTY_AUDIOENGINE_BUFFER_SIZE_RANGE
KSPROPERTY_AUDIOENGINE_DESCRIPTOR
KSPROPERTY_AUDIOENGINE_DEVICEFORMAT
KSPROPERTY_AUDIOENGINE_GFXENABLE
KSPROPERTY_AUDIOENGINE_LFXENABLE
KSPROPERTY_AUDIOENGINE_LOOPBACK_PROTECTION
KSPROPERTY_AUDIOENGINE_MIXFORMAT
KSPROPERTY_AUDIOENGINE_SUPPORTEDDEVICEFORMATS
KSPROPERTY_AUDIOENGINE_VOLUMELEVEL
Požadované vlastnosti v sadě vlastností KSPROPSETID_ Audio
Kromě podpory vlastností v sadě vlastností KSPROPSETID_AudioEngine musí ovladač podporovat také následující existující vlastnosti v sadě vlastností KSPROPSETID_Audio :
A k dokončení implementace podpory ovladačů pro hardwarově offloadované zpracování zvuku jsou k dispozici vlastnosti pro sadu vlastností KSPROPSETID_ Audio.
KSPROPERTY_AUDIO_LINEAR_BUFFER_POSITION
KSPROPERTY_AUDIO_PRESENTATION_POSITION
KSPROPERTY_AUDIO_WAVERT_CURRENT_WRITE_POSITION
Aktualizace ovladačů třídy portů a hlášení chyb
Kromě podpory popsané v předchozích částech pro zpracování zvuku s hardwarově offloadovaným zatížením poskytuje ovladač třídy portů systému Windows pomocná rozhraní, která usnadňují vývoj ovladače schopného pracovat s offloadovanými zvukovými streamy. A když takový ovladač zjistí závady, existuje mechanismus, který ovladači umožňuje tyto závady nahlásit. Následující témata obsahují další podrobnosti o podpůrných rozhraních a hlášení problémů:
Pomocná rozhraní portcls pro zpracování zvuku s hardwarovým přesměrováním Kromě podpory popsané v předchozích částech pro zpracování zvuku s hardwarovým přesměrováním obsahuje ovladač třídy portů systému Windows také "pomocná rozhraní", aby bylo snadné vyvinout ovladač, který dokáže pracovat se streamy zvuku s hardwarovým přesměrováním. A když takový ovladač zjistí závady, existuje mechanismus, který ovladači umožňuje tyto závady nahlásit. Následující témata obsahují další podrobnosti o podpůrných rozhraních a hlášení problémů:
Související témata
Objekty pro zpracování zvuku systému Windows Audio Processing Objects