From b862010a646b24614b5b0a876e25ef6ac75c2d9f Mon Sep 17 00:00:00 2001 From: Ged Murphy Date: Thu, 20 Sep 2007 13:26:19 +0000 Subject: [PATCH] - use correct name when registering. - use unicode apis exclusively when required. - fix rbuild file svn path=/trunk/; revision=29117 --- reactos/base/services/audiosrv/audiosrv.h | 13 ------ .../base/services/audiosrv/audiosrv.rbuild | 7 ++-- reactos/base/services/audiosrv/main.c | 29 +++++++------ reactos/base/services/audiosrv/pnp.c | 42 +++++++++---------- .../base/services/audiosrv/pnp_list_manager.c | 12 +++--- 5 files changed, 45 insertions(+), 58 deletions(-) diff --git a/reactos/base/services/audiosrv/audiosrv.h b/reactos/base/services/audiosrv/audiosrv.h index 72b236dfd98..398c26edda8 100644 --- a/reactos/base/services/audiosrv/audiosrv.h +++ b/reactos/base/services/audiosrv/audiosrv.h @@ -15,19 +15,6 @@ extern SERVICE_STATUS_HANDLE service_status_handle; -/* main.c */ - -VOID CALLBACK -ServiceMain(DWORD argc, char** argv); - -DWORD WINAPI -ServiceControlHandler( - DWORD dwControl, - DWORD dwEventType, - LPVOID lpEventData, - LPVOID lpContext); - - /* List management (pnp_list_manager.c) */ VOID* diff --git a/reactos/base/services/audiosrv/audiosrv.rbuild b/reactos/base/services/audiosrv/audiosrv.rbuild index 47af3acc431..890acc8e54f 100644 --- a/reactos/base/services/audiosrv/audiosrv.rbuild +++ b/reactos/base/services/audiosrv/audiosrv.rbuild @@ -1,7 +1,7 @@ - + + + . - 0x0501 @@ -9,6 +9,7 @@ installname="audiosrv.exe" allowwarnings="true"> kernel32 advapi32 user32 + ntdll setupapi main.c pnp_list_manager.c diff --git a/reactos/base/services/audiosrv/main.c b/reactos/base/services/audiosrv/main.c index d870e018925..6160311eba3 100644 --- a/reactos/base/services/audiosrv/main.c +++ b/reactos/base/services/audiosrv/main.c @@ -11,15 +11,6 @@ #include #include "audiosrv.h" - -/* Service table */ - -SERVICE_TABLE_ENTRY service_table[2] = -{ - { L"AudioSrv", (LPSERVICE_MAIN_FUNCTION) ServiceMain }, - { NULL, NULL } -}; - SERVICE_STATUS_HANDLE service_status_handle; SERVICE_STATUS service_status; @@ -88,13 +79,13 @@ ServiceControlHandler( } VOID CALLBACK -ServiceMain(DWORD argc, char** argv) +ServiceMain(DWORD argc, LPWSTR argv) { logmsg("* Service starting\n"); logmsg("Registering service control handler...\n"); - service_status_handle = RegisterServiceCtrlHandlerEx(SERVICE_NAME, - ServiceControlHandler, - NULL); + service_status_handle = RegisterServiceCtrlHandlerExW(SERVICE_NAME, + ServiceControlHandler, + NULL); logmsg("Service status handle %d\n", service_status_handle); if ( ! service_status_handle ) @@ -165,9 +156,17 @@ ServiceMain(DWORD argc, char** argv) SetServiceStatus(service_status_handle, &service_status); } -int main() +int wmain() { + SERVICE_TABLE_ENTRYW service_table[] = + { + { SERVICE_NAME, (LPSERVICE_MAIN_FUNCTIONW) ServiceMain }, + { NULL, NULL } + }; + logmsg("Audio Service main()\n"); - StartServiceCtrlDispatcher(service_table); + if (!StartServiceCtrlDispatcherW(service_table)) + logmsg("StartServiceCtrlDispatcher failed\n"); + return 0; } diff --git a/reactos/base/services/audiosrv/pnp.c b/reactos/base/services/audiosrv/pnp.c index 1c63e629da7..774dfdd5b6d 100644 --- a/reactos/base/services/audiosrv/pnp.c +++ b/reactos/base/services/audiosrv/pnp.c @@ -30,20 +30,20 @@ ProcessExistingDevices() { SP_DEVICE_INTERFACE_DATA interface_data; SP_DEVINFO_DATA device_data; - PSP_DEVICE_INTERFACE_DETAIL_DATA detail_data; + PSP_DEVICE_INTERFACE_DETAIL_DATA_W detail_data; HDEVINFO dev_info; DWORD length; int index = 0; const GUID category_guid = {STATIC_KSCATEGORY_AUDIO}; - dev_info = SetupDiGetClassDevsEx(&category_guid, - NULL, - NULL, - DIGCF_PRESENT | DIGCF_DEVICEINTERFACE, - NULL, - NULL, - NULL); + dev_info = SetupDiGetClassDevsExW(&category_guid, + NULL, + NULL, + DIGCF_PRESENT | DIGCF_DEVICEINTERFACE, + NULL, + NULL, + NULL); /* printf("%s:\n", ClassString); */ @@ -57,9 +57,9 @@ ProcessExistingDevices() + (MAX_PATH * sizeof(WCHAR)); detail_data = - (PSP_DEVICE_INTERFACE_DETAIL_DATA)HeapAlloc(GetProcessHeap(), - 0, - length); + (PSP_DEVICE_INTERFACE_DETAIL_DATA_W)HeapAlloc(GetProcessHeap(), + 0, + length); while ( SetupDiEnumDeviceInterfaces(dev_info, @@ -73,15 +73,15 @@ ProcessExistingDevices() ZeroMemory(detail_data, length); /* NOTE: We don't actually use device_data... */ - detail_data->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA); + detail_data->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W); device_data.cbSize = sizeof(device_data); device_data.Reserved = 0; - SetupDiGetDeviceInterfaceDetail(dev_info, - &interface_data, - detail_data, - length, - NULL, - &device_data); + SetupDiGetDeviceInterfaceDetailW(dev_info, + &interface_data, + detail_data, + length, + NULL, + &device_data); list_node = CreateDeviceDescriptor(detail_data->DevicePath, TRUE); AppendAudioDeviceToList(list_node); @@ -133,9 +133,9 @@ RegisterForDeviceNotifications() notification_filter.dbcc_classguid = wdmaud_guid; device_notification_handle = - RegisterDeviceNotification((HANDLE) service_status_handle, - ¬ification_filter, - DEVICE_NOTIFY_SERVICE_HANDLE + RegisterDeviceNotificationW((HANDLE) service_status_handle, + ¬ification_filter, + DEVICE_NOTIFY_SERVICE_HANDLE /* | DEVICE_NOTIFY_ALL_INTERFACE_CLASSES*/); diff --git a/reactos/base/services/audiosrv/pnp_list_manager.c b/reactos/base/services/audiosrv/pnp_list_manager.c index 71bc6a5eb09..398eecfa1f3 100644 --- a/reactos/base/services/audiosrv/pnp_list_manager.c +++ b/reactos/base/services/audiosrv/pnp_list_manager.c @@ -114,12 +114,12 @@ CreateAudioDeviceList(DWORD max_size) logmsg("Creating file mapping\n"); /* Expose our device list to the world */ - device_list_file = CreateFileMapping(INVALID_HANDLE_VALUE, - NULL, - PAGE_READWRITE, - 0, - max_size, - AUDIO_LIST_NAME); + device_list_file = CreateFileMappingW(INVALID_HANDLE_VALUE, + NULL, + PAGE_READWRITE, + 0, + max_size, + AUDIO_LIST_NAME); if ( ! device_list_file ) {