37 logmsg(
"* Interrogation\n");
44 logmsg(
"* Service Stop/Shutdown request received\n");
46 logmsg(
"Unregistering device notifications\n");
49 logmsg(
"Destroying audio device list\n");
60 logmsg(
"* Service stopped\n");
67 logmsg(
"* Device Event\n");
81 logmsg(
"* Service starting\n");
82 logmsg(
"Registering service control handler...\n");
90 logmsg(
"Failed to register service control handler\n");
106 logmsg(
"Creating audio device list\n");
110 logmsg(
"Failed to create audio device list\n");
117 logmsg(
"Registering for device notifications\n");
122 logmsg(
"Failed to register for device notifications\n");
137 logmsg(
"Processing existing devices\n");
141 logmsg(
"Could not process existing devices\n");
151 logmsg(
"* Service started\n");
166 logmsg(
"Audio Service main()\n");
168 logmsg(
"StartServiceCtrlDispatcher failed\n");
VOID DestroyAudioDeviceList(VOID)
#define SERVICE_CONTROL_DEVICEEVENT
DWORD HandleDeviceEvent(DWORD dwEventType, LPVOID lpEventData)
void(WINAPI * LPSERVICE_MAIN_FUNCTIONW)(DWORD, LPWSTR *)
BOOL AppendAudioDeviceToList(PnP_AudioDevice *device)
VOID InitializeFakeDevice(VOID)
#define SERVICE_ACCEPT_STOP
#define SERVICE_START_PENDING
DWORD dwServiceSpecificExitCode
int wmain(int argc, WCHAR *argv[])
BOOL WINAPI StartServiceCtrlDispatcherW(const SERVICE_TABLE_ENTRYW *lpServiceStartTable)
BOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE hServiceStatus, LPSERVICE_STATUS lpServiceStatus)
BOOL StartSystemAudioServices(VOID)
#define SERVICE_CONTROL_INTERROGATE
#define DestroyDeviceDescriptor(descriptor)
BOOL CreateAudioDeviceList(DWORD max_size)
SERVICE_STATUS_HANDLE service_status_handle
BOOL ProcessExistingDevices(VOID)
#define SERVICE_WIN32_OWN_PROCESS
DWORD WINAPI ServiceControlHandler(DWORD dwControl, DWORD dwEventType, LPVOID lpEventData, LPVOID lpContext)
static SERVICE_STATUS_HANDLE(WINAPI *pRegisterServiceCtrlHandlerExA)(LPCSTR
VOID CALLBACK ServiceMain(DWORD argc, LPWSTR argv)
void logmsg(char *string,...)
SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExW(LPCWSTR lpServiceName, LPHANDLER_FUNCTION_EX lpHandlerProc, LPVOID lpContext)
BOOL RegisterForDeviceNotifications(VOID)
SERVICE_STATUS service_status
#define AUDIO_LIST_MAX_SIZE
VOID UnregisterDeviceNotifications(VOID)
#define ERROR_CALL_NOT_IMPLEMENTED
#define SERVICE_CONTROL_STOP
#define SERVICE_STOP_PENDING
VOID * CreateDeviceDescriptor(WCHAR *path, BOOL is_enabled)
#define SERVICE_CONTROL_SHUTDOWN