162{
164
176
178 "%s\n", __func__);
179
180 if (Desc->CodecIds.IsDSP) {
181
182
183
185
186
187
188
190 Desc->CodecIds.CtlrVenId, Desc->CodecIds.CtlrDevId);
193 }
194
198 }
199
203 }
204
205
206
207
211 }
212
214 Desc->CodecIds.CtlrVenId, Desc->CodecIds.CtlrDevId);
217 }
218
219
220
221
225 }
226 }
227 else {
228
229
230
232
235 if (Desc->CodecIds.IsGraphicsCodec) {
236 funcPrefix =
L"SGPC_";
237 }
238
239
240
241
243 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.VenId, Desc->CodecIds.DevId, Desc->CodecIds.SubsysId, Desc->CodecIds.RevId);
246 }
247
251 }
252
253
254
255
259 }
260
261
263 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.VenId, Desc->CodecIds.DevId, Desc->CodecIds.SubsysId);
266 }
267
271 }
272
273
274 {
276 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.CtlrDevId, Desc->CodecIds.VenId, Desc->CodecIds.DevId, Desc->CodecIds.RevId);
279 }
280
284 }
285
287 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.VenId, Desc->CodecIds.DevId, Desc->CodecIds.RevId);
290 }
291
295 }
296
298 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.VenId, Desc->CodecIds.DevId, Desc->CodecIds.RevId);
301 }
302
306 }
307
309 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.CtlrDevId, Desc->CodecIds.VenId, Desc->CodecIds.DevId);
312 }
313
317 }
318
320 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.VenId, Desc->CodecIds.DevId);
323 }
324
328 }
329
331 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.VenId, Desc->CodecIds.DevId);
334 }
335
339 }
340
342 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.CtlrDevId, Desc->CodecIds.VenId);
345 }
346
350 }
351
353 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.VenId);
356 }
357
361 }
362
364 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.VenId);
367 }
368
372 }
373
375 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId, Desc->CodecIds.CtlrDevId);
378 }
379
383 }
384
386 prefix, funcPrefix, Desc->CodecIds.FuncId, Desc->CodecIds.CtlrVenId);
389 }
390
394 }
395
397 prefix, funcPrefix, Desc->CodecIds.FuncId);
400 }
401
405 }
406 }
407 }
408
412 }
413
417 }
418
419
420
421
422
423
424
425
426
427
428 if (Desc->CodecIds.IsDSP) {
431 }
432 else {
434 L"High Definition Audio Device");
435 }
438 }
439
440
441
442
443
444
445
446
447
450 &deviceLocation,
454 }
455
457
458
459
460
461
463
467 }
468
469
470
471
472 pdoData = PdoGetData(
hChild);
473
476
477 if (!Desc->CodecIds.IsDSP)
478 Desc->FdoContext->codecs[Desc->CodecIds.CodecAddress] = pdoData;
479
480
481
482
487
488 pnpCaps.
Address = Desc->CodecIds.CodecAddress;
489 pnpCaps.
UINumber = Desc->CodecIds.CodecAddress;
490
491 WdfDeviceSetPnpCapabilities(
hChild, &pnpCaps);
492
494
498
505
506 WdfDeviceSetPowerCapabilities(
hChild, &powerCaps);
507
508 if (Desc->CodecIds.IsDSP) {
512 &GUID_ADSP_BUS_INTERFACE,
515 }
516 else {
518
521 &GUID_HDAUDIO_BUS_INTERFACE,
523
527 }
528
532 &GUID_HDAUDIO_BUS_INTERFACE_BDL,
537 }
538
542 &GUID_HDAUDIO_BUS_INTERFACE_V2,
547 }
548
552 &GUID_HDAUDIO_BUS_INTERFACE_V3,
557 }
558 }
559
561}
ADSP_BUS_INTERFACE ADSP_BusInterface(PVOID Context)
#define DECLARE_UNICODE_STRING_SIZE(_var, _size)
#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 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)
_Must_inspect_result_ _In_ WDFDEVICE Device
_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)