NTSTATUS WdmAudMixerInitialize( IN PDEVICE_OBJECT DeviceObject) { MIXER_STATUS Status; /* initialize the mixer library */ Status = MMixerInitialize(&MixerContext, Enum, (PVOID)DeviceObject); if (Status != MM_STATUS_SUCCESS) { /* failed to initialize mmixer library */ DPRINT("MMixerInitialize failed with %lx\n", Status); } return Status; }
BOOL WdmAudInitUserModeMixer() { HDEVINFO DeviceHandle; MIXER_STATUS Status; if (MMixerLibraryInitialized) { /* library is already initialized */ return TRUE; } /* create a device list */ DeviceHandle = SetupDiGetClassDevs(&CategoryGuid, NULL, NULL, DIGCF_DEVICEINTERFACE/* FIXME |DIGCF_PRESENT*/); if (DeviceHandle == INVALID_HANDLE_VALUE) { /* failed to create a device list */ return FALSE; } /* initialize the mixer library */ Status = MMixerInitialize(&MixerContext, Enum, (PVOID)DeviceHandle); /* free device list */ SetupDiDestroyDeviceInfoList(DeviceHandle); if (Status != MM_STATUS_SUCCESS) { /* failed to initialize mixer library */ DPRINT1("Failed to initialize mixer library with %x\n", Status); return FALSE; } /* library is now initialized */ MMixerLibraryInitialized = TRUE; /* completed successfully */ return TRUE; }