mirror of
				https://github.com/winfsp/winfsp.git
				synced 2025-10-30 19:48:38 -05:00 
			
		
		
		
	Speed up mount operation by putting winfsp network provider at the head of network providers
This commit is contained in:
		
							
								
								
									
										12
									
								
								src/dll/np.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/dll/np.c
									
									
									
									
									
								
							| @@ -1016,7 +1016,7 @@ NTSTATUS FspNpRegister(VOID) | ||||
|     WCHAR ProviderPath[MAX_PATH]; | ||||
|     WCHAR RegBuffer[1024]; | ||||
|     PWSTR P, Part; | ||||
|     DWORD RegResult, RegType, RegBufferSize; | ||||
|     DWORD RegResult, RegType, RegBufferSize, RegBufferOffset; | ||||
|     HKEY RegKey; | ||||
|     BOOLEAN FoundProvider; | ||||
|  | ||||
| @@ -1082,15 +1082,16 @@ NTSTATUS FspNpRegister(VOID) | ||||
|         return FspNtStatusFromWin32(RegResult); | ||||
|  | ||||
|     RegBufferSize = sizeof RegBuffer - sizeof L"," FSP_NP_NAME; | ||||
|     RegBufferOffset = lstrlenW(L"," FSP_NP_NAME); | ||||
|     RegResult = RegQueryValueExW(RegKey, | ||||
|         L"ProviderOrder", 0, &RegType, (PVOID)RegBuffer, &RegBufferSize); | ||||
|         L"ProviderOrder", 0, &RegType, (PVOID)&RegBuffer[RegBufferOffset], &RegBufferSize); | ||||
|     if (ERROR_SUCCESS != RegResult) | ||||
|         goto close_and_exit; | ||||
|     RegBufferSize /= sizeof(WCHAR); | ||||
|  | ||||
|     FoundProvider = FALSE; | ||||
|     RegBuffer[RegBufferSize] = L'\0'; | ||||
|     P = RegBuffer, Part = P; | ||||
|     RegBuffer[RegBufferSize + RegBufferOffset] = L'\0'; | ||||
|     P = &RegBuffer[RegBufferOffset], Part = P; | ||||
|     do | ||||
|     { | ||||
|         if (L',' == *P || '\0' == *P) | ||||
| @@ -1107,8 +1108,7 @@ NTSTATUS FspNpRegister(VOID) | ||||
|  | ||||
|     if (!FoundProvider) | ||||
|     { | ||||
|         P--; | ||||
|         memcpy(P, L"," FSP_NP_NAME, sizeof L"," FSP_NP_NAME); | ||||
|         memcpy((PWSTR)RegBuffer, L"" FSP_NP_NAME ",", sizeof L"" FSP_NP_NAME); | ||||
|  | ||||
|         RegBufferSize = lstrlenW(RegBuffer); | ||||
|         RegBufferSize++; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user