diff --git a/packages/path_provider/path_provider_linux/CHANGELOG.md b/packages/path_provider/path_provider_linux/CHANGELOG.md
index c9c4bb3..b69ec90 100644
--- a/packages/path_provider/path_provider_linux/CHANGELOG.md
+++ b/packages/path_provider/path_provider_linux/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.1.7
+
+* Bumps ffi dependency to match path_provider_windows.
+
 ## 2.1.6
 
 * Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors
@@ -54,20 +58,24 @@
 
 * Check in linux/ directory for example/
 
-## 0.1.1	- NOT PUBLISHED
+## 0.1.1 - NOT PUBLISHED
+
 * Reverts changes on 0.1.0, which broke the tree.
 
+## 0.1.0 - NOT PUBLISHED
 
-## 0.1.0	- NOT PUBLISHED
 * This release updates getApplicationSupportPath to use the application ID instead of the executable name.
   * No migration is provided, so any older apps that were using this path will now have a different directory.
 
 ## 0.0.1+2
+
 * This release updates the example to depend on the endorsed plugin rather than relative path
 
 ## 0.0.1+1
+
 * This updates the readme and pubspec and example to reflect the endorsement of this implementation of `path_provider`
 
 ## 0.0.1
+
 * The initial implementation of path\_provider for Linux
   * Implements getApplicationSupportPath, getApplicationDocumentsPath, getDownloadsPath, and getTemporaryPath
diff --git a/packages/path_provider/path_provider_linux/pubspec.yaml b/packages/path_provider/path_provider_linux/pubspec.yaml
index 46e248f..c0b7954 100644
--- a/packages/path_provider/path_provider_linux/pubspec.yaml
+++ b/packages/path_provider/path_provider_linux/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Linux implementation of the path_provider plugin
 repository: https://github.com/flutter/plugins/tree/main/packages/path_provider/path_provider_linux
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+path_provider%22
-version: 2.1.6
+version: 2.1.7
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
@@ -16,7 +16,7 @@
         dartPluginClass: PathProviderLinux
 
 dependencies:
-  ffi: ^1.1.2
+  ffi: ">=1.1.2 <3.0.0"
   flutter:
     sdk: flutter
   path: ^1.8.0
diff --git a/packages/path_provider/path_provider_windows/CHANGELOG.md b/packages/path_provider/path_provider_windows/CHANGELOG.md
index f48093b..3967c38 100644
--- a/packages/path_provider/path_provider_windows/CHANGELOG.md
+++ b/packages/path_provider/path_provider_windows/CHANGELOG.md
@@ -1,6 +1,7 @@
-## 2.0.7
+## 2.1.0
 
-* Added support for unicode encoded VERSIONINFO
+* Upgrades `package:ffi` dependency to 2.0.0.
+* Added support for unicode encoded VERSIONINFO.
 * Minor fixes for new analysis options.
 
 ## 2.0.6
diff --git a/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugins.cmake b/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugins.cmake
index 4d10c25..b93c4c3 100644
--- a/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugins.cmake
+++ b/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugins.cmake
@@ -5,6 +5,9 @@
 list(APPEND FLUTTER_PLUGIN_LIST
 )
 
+list(APPEND FLUTTER_FFI_PLUGIN_LIST
+)
+
 set(PLUGIN_BUNDLED_LIBRARIES)
 
 foreach(plugin ${FLUTTER_PLUGIN_LIST})
@@ -13,3 +16,8 @@
   list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
   list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
 endforeach(plugin)
+
+foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
+  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})
+  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
+endforeach(ffi_plugin)
diff --git a/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart b/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart
index 9a8b0cf..6a9c138 100644
--- a/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart
+++ b/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart
@@ -50,7 +50,7 @@
     }
     final Pointer<Utf16> keyPath =
         TEXT('\\StringFileInfo\\$language$encoding\\$key');
-    final Pointer<Uint32> length = calloc<Uint32>();
+    final Pointer<UINT> length = calloc<UINT>();
     final Pointer<Pointer<Utf16>> valueAddress = calloc<Pointer<Utf16>>();
     try {
       if (VerQueryValue(versionInfo, keyPath, valueAddress, length) == 0) {
@@ -192,10 +192,9 @@
     String? companyName;
     String? productName;
 
-    final Pointer<Utf16> moduleNameBuffer =
-        calloc<Uint16>(MAX_PATH + 1).cast<Utf16>();
-    final Pointer<Uint32> unused = calloc<Uint32>();
-    Pointer<Uint8>? infoBuffer;
+    final Pointer<Utf16> moduleNameBuffer = wsalloc(MAX_PATH + 1);
+    final Pointer<DWORD> unused = calloc<DWORD>();
+    Pointer<BYTE>? infoBuffer;
     try {
       // Get the module name.
       final int moduleNameLength =
@@ -208,7 +207,7 @@
       // From that, load the VERSIONINFO resource
       final int infoSize = GetFileVersionInfoSize(moduleNameBuffer, unused);
       if (infoSize != 0) {
-        infoBuffer = calloc<Uint8>(infoSize);
+        infoBuffer = calloc<BYTE>(infoSize);
         if (GetFileVersionInfo(moduleNameBuffer, 0, infoSize, infoBuffer) ==
             0) {
           calloc.free(infoBuffer);
diff --git a/packages/path_provider/path_provider_windows/pubspec.yaml b/packages/path_provider/path_provider_windows/pubspec.yaml
index a995b9f..4e99be7 100644
--- a/packages/path_provider/path_provider_windows/pubspec.yaml
+++ b/packages/path_provider/path_provider_windows/pubspec.yaml
@@ -2,11 +2,11 @@
 description: Windows implementation of the path_provider plugin
 repository: https://github.com/flutter/plugins/tree/main/packages/path_provider/path_provider_windows
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+path_provider%22
-version: 2.0.7
+version: 2.1.0
 
 environment:
-  sdk: ">=2.12.0 <3.0.0"
-  flutter: ">=2.8.0"
+  sdk: ">=2.17.0 <3.0.0"
+  flutter: ">=3.0.0"
 
 flutter:
   plugin:
@@ -16,7 +16,7 @@
         dartPluginClass: PathProviderWindows
 
 dependencies:
-  ffi: ^1.0.0
+  ffi: ^2.0.0
   flutter:
     sdk: flutter
   path: ^1.8.0
