diff --git a/mingw-w64-headers/include/driverspecs.h b/mingw-w64-headers/include/driverspecs.h
index b7d3268..2fa89a1 100644
--- a/mingw-w64-headers/include/driverspecs.h
+++ b/mingw-w64-headers/include/driverspecs.h
@@ -28,3 +28,6 @@
 
 #define __deref_out_ecount(Size)
 
+#define __drv_aliasesMem
+#define __drv_allocatesMem(kind)
+#define __drv_freesMem(kind)
diff --git a/mingw-w64-headers/include/sal.h b/mingw-w64-headers/include/sal.h
index 79a747f..fe0d92b 100644
--- a/mingw-w64-headers/include/sal.h
+++ b/mingw-w64-headers/include/sal.h
@@ -17,12 +17,171 @@
 
 #define __checkReturn __inner_checkReturn
 
+/* Pointer parameters */
 #define _In_
-#define _In_opt_
 #define _Out_
 #define _Inout_
+#define _In_z_
+#define _Inout_z_
+#define _In_reads_(s)
+#define _In_reads_bytes_(s)
+#define _In_reads_z_(s)
+#define _In_reads_or_z_(s)
+#define _Out_writes_(s)
+#define _Out_writes_bytes_(s)
+#define _Out_writes_z_(s)
+#define _Inout_updates_(s)
+#define _Inout_updates_bytes_(s)
+#define _Inout_updates_z_(s)
+#define _Out_writes_to_(s,c)
+#define _Out_writes_bytes_to_(s, c)
+#define _Out_writes_all_(s)
+#define _Out_writes_bytes_all_(s)
+#define _Inout_updates_to_(s, c)
+#define _Inout_updates_bytes_to_(s, c)
+#define _Inout_updates_all_(s)
+#define _Inout_updates_bytes_all_(s)
+#define _In_reads_to_ptr_(p)
+#define _In_reads_to_ptr_z_(p)
+#define _Out_writes_to_ptr_(p)
+#define _Out_writes_to_ptr_z(p)
+
+/* Optional pointer parameters */
+#define _In_opt_
+#define _Out_opt_
+#define _Inout_opt_
+#define _In_opt_z_
+#define _Inout_opt_z_
+#define _In_reads_opt_(s)
+#define _In_reads_bytes_opt_(s)
+#define _In_reads_opt_z_(s)
+
+#define _Out_writes_opt_(s)
+#define _Out_writes_opt_z_(s)
+#define _Inout_updates_opt_(s)
+#define _Inout_updates_bytes_opt_(s)
+#define _Inout_updates_opt_z_(s)
+#define _Out_writes_to_opt_(s, c)
+#define _Out_writes_bytes_to_opt_(s, c)
+#define _Out_writes_all_opt_(s)
+#define _Out_writes_bytes_all_opt_(s)
+
+#define _Inout_updates_to_opt_(s, c)
+#define _Inout_updates_bytes_to_opt_(s, c)
+#define _Inout_updates_all_opt_(s)
+#define _Inout_updates_bytes_all_opt_(s)
+#define _In_reads_to_ptr_opt_(p)
+#define _In_reads_to_ptr_opt_z_(p)
+#define _Out_writes_to_ptr_opt_(p)
+#define _Out_writes_to_ptr_opt_z_(p)
+
+/* Output pointer parameters */
+#define _Outptr_
+#define _Outptr_opt_
+#define _Outptr_result_maybenull_
+#define _Outptr_opt_result_maybenull_
+#define _Outptr_result_z_
+#define _Outptr_opt_result_z_
+#define _Outptr_result_maybenull_z_
+#define _Outptr_opt_result_maybenull_z_
+#define _COM_Outptr_
+#define _COM_Outptr_opt_
+#define _COM_Outptr_result_maybenull_
+#define _COM_Outptr_opt_result_maybenull_
+#define _Outptr_result_buffer_(s)
+#define _Outptr_result_bytebuffer_(s)
+#define _Outptr_opt_result_buffer_(s)
+#define _Outptr_opt_result_bytebuffer_(s)
+#define _Outptr_result_buffer_to_(s, c)
+#define _Outptr_result_bytebuffer_to_(s, c)
+#define _Outptr_opt_result_buffer_to_(s, c)
+#define _Outptr_opt_result_bytebuffer_to_(s, c)
+#define _Result_nullonfailure_
+#define _Result_zeroonfailure_
+#define _Outptr_result_nullonfailure_
+#define _Outptr_opt_result_nullonfailure_
+#define _Outref_result_nullonfailure_
+
+/* Output reference parameters */
+#define _Outref_
+#define _Outref_result_maybenull_
+#define _Outref_result_buffer_(s)
+#define _Outref_result_bytebuffer_(s)
+#define _Outref_result_buffer_to_(s, c)
+#define _Outref_result_bytebuffer_to_(s, c)
+#define _Outref_result_buffer_all_(s)
+#define _Outref_result_bytebuffer_all_(s)
+#define _Outref_result_buffer_maybenull_(s)
+#define _Outref_result_bytebuffer_maybenull_(s)
+#define _Outref_result_buffer_to_maybenull_(s, c)
+#define _Outref_result_bytebuffer_to_maybenull_(s, c)
+#define _Outref_result_buffer_all_maybenull_(s)
+#define _Outref_result_bytebuffer_all_maybenull_(s)
 
+/* Return values */
+#define _Ret_z_
+#define _Ret_writes_(s)
+#define _Ret_writes_bytes_(s)
+#define _Ret_writes_z_(s)
+#define _Ret_writes_bytes_to_(s, c)
+#define _Ret_writes_maybenull_(s)
+#define _Ret_writes_to_maybenull_(s, c)
+#define _Ret_writes_maybenull_z_(s)
+#define _Ret_maybenull_
+#define _Ret_maybenull_z_
+#define _Ret_null_
+#define _Ret_notnull_
+#define _Ret_writes_bytes_to_(s, c)
+#define _Ret_writes_bytes_maybenull_(s)
+#define _Ret_writes_bytes_to_maybenull_(s, c)
+
+/* Other common annotations */
+#define _In_range_(low, hi)
+#define _Out_range_(low, hi)
+#define _Ret_range_(low, hi)
+#define _Deref_in_range_(low, hi)
+#define _Deref_out_range_(low, hi)
+#define _Deref_inout_range_(low, hi)
+#define _Field_range_(low, hi)
+#define _Pre_equal_to_(expr)
+#define _Post_equal_to_(expr)
 #define _Struct_size_bytes_(size)
 
+/* Function annotations */
+#define _Called_from_function_class_(name)
+#define _Check_return_ __checkReturn
+#define _Function_class_(name)
+#define _Raises_SEH_exception_
+#define _Maybe_raises_SEH_exception_
+#define _Must_inspect_result_
+#define _Use_decl_annotations_
+
+/* Success/failure annotations */
+#define _Always_(anno_list)
+#define _On_failure_(anno_list)
+#define _Return_type_success_(expr)
+#define _Success_(expr)
+
+#define _Reserved_
+#define _Const_
+
+/* Buffer properties */
+#define _Readable_bytes_(s)
+#define _Readable_elements_(s)
+#define _Writable_bytes_(s)
+#define _Writable_elements_(s)
+#define _Null_terminated_
+#define _NullNull_terminated_
+#define _Pre_readable_size_(s)
+#define _Pre_writable_size_(s)
+#define _Pre_readable_byte_size_(s)
+#define _Pre_writable_byte_size_(s)
+#define _Post_readable_size_(s)
+#define _Post_writable_size_(s)
+#define _Post_readable_byte_size_(s)
+#define _Post_writable_byte_size_(s)
+
+#define _Analysis_assume_(expr)
+
 #endif
 
