mirror of
				https://github.com/winfsp/winfsp.git
				synced 2025-10-30 19:48:38 -05:00 
			
		
		
		
	launcher, launchctl: refactoring
This commit is contained in:
		| @@ -80,8 +80,15 @@ static int call_pipe_and_report(PWSTR PipeBuf, ULONG SendSize, ULONG RecvSize) | ||||
|         { | ||||
|             for (PWSTR P = PipeBuf, PipeBufEnd = P + BytesTransferred / sizeof(WCHAR); | ||||
|                 PipeBufEnd > P; P++) | ||||
|                 if (L'\0' == *P) | ||||
|                 switch (*P) | ||||
|                 { | ||||
|                 case L'\0': | ||||
|                     *P = L'\n'; | ||||
|                     break; | ||||
|                 case L'\1': | ||||
|                     *P = L' '; | ||||
|                     break; | ||||
|                 } | ||||
|  | ||||
|             if (BytesTransferred < RecvSize) | ||||
|                 PipeBuf[BytesTransferred / sizeof(WCHAR)] = L'\0'; | ||||
|   | ||||
| @@ -378,9 +378,12 @@ NTSTATUS SvcInstanceGetInfo(HANDLE ClientToken, | ||||
|     PWSTR ClassName, PWSTR InstanceName, PWSTR Buffer, PULONG PSize) | ||||
| { | ||||
|     SVC_INSTANCE *SvcInstance; | ||||
|     PWSTR P = Buffer; | ||||
|     ULONG ClassNameSize, InstanceNameSize, CommandLineSize; | ||||
|     NTSTATUS Result; | ||||
|  | ||||
|     *PSize = 0; | ||||
|  | ||||
|     EnterCriticalSection(&SvcInstanceLock); | ||||
|  | ||||
|     SvcInstance = SvcInstanceLookup(ClassName, InstanceName); | ||||
| @@ -404,12 +407,11 @@ NTSTATUS SvcInstanceGetInfo(HANDLE ClientToken, | ||||
|         goto exit; | ||||
|     } | ||||
|  | ||||
|     memcpy(Buffer, SvcInstance->ClassName, | ||||
|         ClassNameSize * sizeof(WCHAR)); | ||||
|     memcpy(Buffer + ClassNameSize, SvcInstance->InstanceName, | ||||
|         InstanceNameSize * sizeof(WCHAR)); | ||||
|     memcpy(Buffer + ClassNameSize + InstanceNameSize, SvcInstance->CommandLine, | ||||
|         CommandLineSize * sizeof(WCHAR)); | ||||
|     memcpy(P, SvcInstance->ClassName, ClassNameSize * sizeof(WCHAR)); P += ClassNameSize; | ||||
|     memcpy(P, SvcInstance->InstanceName, InstanceNameSize * sizeof(WCHAR)); P += InstanceNameSize; | ||||
|     memcpy(P, SvcInstance->CommandLine, CommandLineSize * sizeof(WCHAR)); P += CommandLineSize; | ||||
|  | ||||
|     *PSize = (ULONG)(P - Buffer); | ||||
|  | ||||
|     Result = STATUS_SUCCESS; | ||||
|  | ||||
| @@ -441,8 +443,9 @@ NTSTATUS SvcInstanceGetNameList(HANDLE ClientToken, | ||||
|         if (BufferEnd < P + ClassNameSize + InstanceNameSize) | ||||
|             break; | ||||
|  | ||||
|         ClassNameSize--; | ||||
|         memcpy(P, SvcInstance->ClassName, ClassNameSize * sizeof(WCHAR)); P += ClassNameSize; | ||||
|         *Buffer++ = L' '; | ||||
|         *Buffer++ = L'\1'; | ||||
|         memcpy(P, SvcInstance->InstanceName, InstanceNameSize * sizeof(WCHAR)); P += InstanceNameSize; | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user