52 dst->FdoContext =
src->FdoContext;
180 if (Desc->CodecIds.IsDSP) {
190 Desc->CodecIds.CtlrVenId, Desc->CodecIds.CtlrDevId);
214 Desc->CodecIds.CtlrVenId, Desc->CodecIds.CtlrDevId);
235 if (Desc->CodecIds.IsGraphicsCodec) {
236 funcPrefix =
L"SGPC_";
243 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.VenId, Desc->CodecIds.DevId, Desc->CodecIds.SubsysId, Desc->CodecIds.RevId);
263 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.VenId, Desc->CodecIds.DevId, Desc->CodecIds.SubsysId);
276 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.CtlrDevId, Desc->CodecIds.VenId, Desc->CodecIds.DevId, Desc->CodecIds.RevId);
287 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.VenId, Desc->CodecIds.DevId, Desc->CodecIds.RevId);
298 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.VenId, Desc->CodecIds.DevId, Desc->CodecIds.RevId);
309 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.CtlrDevId, Desc->CodecIds.VenId, Desc->CodecIds.DevId);
320 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.VenId, Desc->CodecIds.DevId);
331 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.VenId, Desc->CodecIds.DevId);
342 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.CtlrDevId, Desc->CodecIds.VenId);
353 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.VenId);
364 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.VenId);
375 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.CtlrDevId);
386 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId);
397 prefix, funcPrefix, Desc->CodecIds.FuncId);
428 if (Desc->CodecIds.IsDSP) {
434 L"High Definition Audio Device");
472 pdoData = PdoGetData(
hChild);
477 if (!Desc->CodecIds.IsDSP)
478 Desc->FdoContext->codecs[Desc->CodecIds.CodecAddress] = pdoData;
488 pnpCaps.
Address = Desc->CodecIds.CodecAddress;
489 pnpCaps.
UINumber = Desc->CodecIds.CodecAddress;
491 WdfDeviceSetPnpCapabilities(
hChild, &pnpCaps);
506 WdfDeviceSetPowerCapabilities(
hChild, &powerCaps);
508 if (Desc->CodecIds.IsDSP) {
512 &GUID_ADSP_BUS_INTERFACE,
521 &GUID_HDAUDIO_BUS_INTERFACE,
532 &GUID_HDAUDIO_BUS_INTERFACE_BDL,
542 &GUID_HDAUDIO_BUS_INTERFACE_V2,
552 &GUID_HDAUDIO_BUS_INTERFACE_V3,
ADSP_BUS_INTERFACE ADSP_BusInterface(PVOID Context)
#define DECLARE_UNICODE_STRING_SIZE(_var, _size)
BOOLEAN NTAPI Bus_EvtChildListIdentificationDescriptionCompare(WDFCHILDLIST DeviceList, PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER FirstIdentificationDescription, PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER SecondIdentificationDescription)
VOID NTAPI Bus_EvtChildListIdentificationDescriptionCleanup(_In_ WDFCHILDLIST DeviceList, _Inout_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription)
NTSTATUS NTAPI Bus_EvtDeviceListCreatePdo(WDFCHILDLIST DeviceList, PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription, PWDFDEVICE_INIT ChildInit)
NTSTATUS Bus_CreatePdo(_In_ WDFDEVICE Device, _In_ PWDFDEVICE_INIT DeviceInit, _In_ PPDO_IDENTIFICATION_DESCRIPTION Desc)
NTSTATUS NTAPI Bus_EvtChildListIdentificationDescriptionDuplicate(WDFCHILDLIST DeviceList, PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER SourceIdentificationDescription, PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER DestinationIdentificationDescription)
#define MAX_INSTANCE_ID_LEN
#define NT_SUCCESS(StatCode)
HDAUDIO_BUS_INTERFACE_BDL HDA_BusInterfaceBDL(PVOID Context)
HDAUDIO_BUS_INTERFACE HDA_BusInterface(PVOID Context)
HDAUDIO_BUS_INTERFACE_V2 HDA_BusInterfaceV2(PVOID Context)
#define SklHdAudBusPrint(dbglevel, fmt,...)
HDAUDIO_BUS_INTERFACE_V3 HDA_BusInterfaceV3(PVOID Context)
#define RtlCompareMemory(s1, s2, l)
#define UNREFERENCED_PARAMETER(P)
NTSTRSAFEVAPI RtlUnicodeStringPrintf(_In_ PUNICODE_STRING DestinationString, _In_ NTSTRSAFE_PCWSTR pszFormat,...)
#define FILE_DEVICE_BUS_EXTENDER
#define FILE_DEVICE_SOUND
#define SUBLANG_ENGLISH_US
WDF_TRI_STATE EjectSupported
WDF_TRI_STATE SurpriseRemovalOK
DEVICE_POWER_STATE DeviceWake
DEVICE_POWER_STATE DeviceState[PowerSystemMaximum]
Character const *const prefix
#define RtlCopyMemory(Destination, Source, Length)
#define CONTAINING_RECORD(address, type, field)
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER SourceIdentificationDescription
_Must_inspect_result_ _In_ WDFDEVICE Device
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER SecondIdentificationDescription
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _Out_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER DestinationIdentificationDescription
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER FirstIdentificationDescription
_In_ PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER _In_ PWDFDEVICE_INIT ChildInit
_In_ PWDFDEVICE_INIT DeviceInit
#define DECLARE_CONST_UNICODE_STRING(_variablename, _string)
FORCEINLINE VOID WDF_DEVICE_PNP_CAPABILITIES_INIT(_Out_ PWDF_DEVICE_PNP_CAPABILITIES Caps)
FORCEINLINE VOID WDF_DEVICE_POWER_CAPABILITIES_INIT(_Out_ PWDF_DEVICE_POWER_CAPABILITIES Caps)
#define WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(_attributes, _contexttype)
FORCEINLINE VOID WDF_QUERY_INTERFACE_CONFIG_INIT(_Out_ PWDF_QUERY_INTERFACE_CONFIG InterfaceConfig, _In_opt_ PINTERFACE Interface, _In_ CONST GUID *InterfaceType, _In_opt_ PFN_WDF_DEVICE_PROCESS_QUERY_INTERFACE_REQUEST EvtDeviceProcessQueryInterfaceRequest)