From ac09e360bb0dc232ed3cb091c27ac405320408db Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sat, 10 Sep 2011 14:45:47 +0000 Subject: [PATCH] [KMTEST] - Load the driver from the application directory, not the current directory svn path=/trunk/; revision=53672 --- rostests/kmtests/kmtest/service.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rostests/kmtests/kmtest/service.c b/rostests/kmtests/kmtest/service.c index 9f326144000..7313a1cec74 100644 --- a/rostests/kmtests/kmtest/service.c +++ b/rostests/kmtests/kmtest/service.c @@ -87,19 +87,19 @@ KmtCreateService( assert(ServiceHandle); assert(ServiceName && ServicePath); - if (!GetCurrentDirectory(sizeof DriverPath / sizeof DriverPath[0], DriverPath)) + if (!GetModuleFileName(NULL, DriverPath, sizeof DriverPath / sizeof DriverPath[0])) error_goto(Error, cleanup); - if (DriverPath[wcslen(DriverPath) - 1] != L'\\') - { - DriverPath[wcslen(DriverPath) + 1] = L'\0'; - DriverPath[wcslen(DriverPath)] = L'\\'; - } + assert(wcsrchr(DriverPath, L'\\') != NULL); + wcsrchr(DriverPath, L'\\')[1] = L'\0'; result = StringCbCat(DriverPath, sizeof DriverPath, ServicePath); if (FAILED(result)) error_value_goto(Error, result, cleanup); + if (GetFileAttributes(DriverPath) == INVALID_FILE_ATTRIBUTES) + error_goto(Error, cleanup); + *ServiceHandle = CreateService(ScmHandle, ServiceName, DisplayName, SERVICE_ACCESS, SERVICE_KERNEL_DRIVER, SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL, DriverPath, NULL, NULL, NULL, NULL, NULL); -- 2.17.1