diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,12 @@
 # Changelog for spirv-reflect-ffi
 
+## [0.4.1] - 2026-07-31
+
+* Fix Windows build: bind `size_t` as `CSize` instead of `CULong`
+  (`spvReflectCreateShaderModule`/`spvReflectCreateShaderModule2`).
+
+[0.4.1]: https://gitlab.com/dpwiz/spirv-reflect/-/tree/v0.4.1-ffi
+
 ## [0.4] - 2026-06-23
 
 * **Breaking:** minimum GHC raised to 9.2 (`base >= 4.16`).
diff --git a/lib/Data/SpirV/Reflect/FFI/Internal.chs b/lib/Data/SpirV/Reflect/FFI/Internal.chs
--- a/lib/Data/SpirV/Reflect/FFI/Internal.chs
+++ b/lib/Data/SpirV/Reflect/FFI/Internal.chs
@@ -17,7 +17,7 @@
 import Data.Word (Word32)
 import Data.IORef (IORef, newIORef, readIORef, modifyIORef')
 import Foreign.C.String (CString)
-import Foreign.C.Types (CULong)
+import Foreign.C.Types (CSize)
 import Foreign.Marshal.Utils (maybePeek)
 import Foreign.Ptr (Ptr, castPtr, plusPtr, nullPtr)
 import Foreign.Storable (peek, peekElemOff)
@@ -54,7 +54,7 @@
 
 {#fun unsafe
   spvReflectCreateShaderModule as createShaderModule
-  { id `CULong'
+  { fromIntegral `CSize'
   , `Ptr ()'
   , `ShaderModulePtr'
   } -> `Result'
@@ -69,7 +69,7 @@
 {#fun unsafe
   spvReflectCreateShaderModule2 as createShaderModule2
   { `ModuleFlags'
-  , id `CULong'
+  , fromIntegral `CSize'
   , `Ptr ()'
   , `ShaderModulePtr'
   } -> `Result'
diff --git a/spirv-reflect-ffi.cabal b/spirv-reflect-ffi.cabal
--- a/spirv-reflect-ffi.cabal
+++ b/spirv-reflect-ffi.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.39.1.
+-- This file has been generated from package.yaml by hpack version 0.39.6.
 --
 -- see: https://github.com/sol/hpack
 
 name:           spirv-reflect-ffi
-version:        0.4
+version:        0.4.1
 synopsis:       C-library loader for spirv-reflect tool.
 category:       Graphics
 author:         IC Rainbow
