diff --git a/mingw-w64-headers/include/bcrypt.h b/mingw-w64-headers/include/bcrypt.h
index 006181c..6369fd1 100644
--- a/mingw-w64-headers/include/bcrypt.h
+++ b/mingw-w64-headers/include/bcrypt.h
@@ -55,6 +55,14 @@
 #define BCRYPT_KDF_TLS_PRF L"TLS_PRF"
 #define BCRYPT_KDF_SP80056A_CONCAT L"SP800_56A_CONCAT"
 
+#if NTDDI_VERSION >= NTDDI_WINBLUE
+#define BCRYPT_KDF_RAW_SECRET L"TRUNCATE"
+#endif
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS4
+#define BCRYPT_KDF_HKDF L"HKDF"
+#endif
+
 #define KDF_HASH_ALGORITHM 0x0
 #define KDF_SECRET_PREPEND 0x1
 #define KDF_SECRET_APPEND 0x2
@@ -62,18 +70,26 @@
 #define KDF_TLS_PRF_LABEL 0x4
 #define KDF_TLS_PRF_SEED 0x5
 #define KDF_SECRET_HANDLE 0x6
+#if NTDDI_VERSION >= NTDDI_WIN7
 #define KDF_TLS_PRF_PROTOCOL 0x7
 #define KDF_ALGORITHMID 0x8
 #define KDF_PARTYUINFO 0x9
 #define KDF_PARTYVINFO 0xa
 #define KDF_SUPPPUBINFO 0xb
 #define KDF_SUPPPRIVINFO 0xc
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN8
 #define KDF_LABEL 0xd
 #define KDF_CONTEXT 0xe
 #define KDF_SALT 0xf
 #define KDF_ITERATION_COUNT 0x10
 #define KDF_GENERIC_PARAMETER 0x11
 #define KDF_KEYBITLENGTH 0x12
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_RS4
+#define KDF_HKDF_SALT 0x13
+#define KDF_HKDF_INFO 0x14
+#endif
 
 #define KDF_USE_SECRET_AS_HMAC_KEY_FLAG 1
 
@@ -89,7 +105,9 @@
 
 #define BCRYPT_OPAQUE_KEY_BLOB L"OpaqueKeyBlob"
 #define BCRYPT_KEY_DATA_BLOB L"KeyDataBlob"
+#if NTDDI_VERSION >= NTDDI_WIN7
 #define BCRYPT_AES_WRAP_KEY_BLOB L"Rfc3565KeyWrapBlob"
+#endif
 
 #define BCRYPT_ALGORITHM_NAME L"AlgorithmName"
 #define BCRYPT_AUTH_TAG_LENGTH L"AuthTagLength"
@@ -120,7 +138,17 @@
 #define BCRYPT_PCP_PROVIDER_VERSION_PROPERTY L"PCP_PROVIDER_VERSION"
 #define BCRYPT_PRIMITIVE_TYPE L"PrimitiveType"
 #define BCRYPT_PROVIDER_HANDLE L"ProviderHandle"
+#define BCRYPT_PUBLIC_KEY_LENGTH L"PublicKeyLength"
 #define BCRYPT_SIGNATURE_LENGTH L"SignatureLength"
+#if (NTDDI_VERSION > NTDDI_WINBLUE || (NTDDI_VERSION == NTDDI_WINBLUE && defined(WINBLUE_KBSPRING14)))
+#define BCRYPT_MULTI_OBJECT_LENGTH L"MultiObjectLength"
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_RS4
+#define BCRYPT_IS_IFX_TPM_WEAK_KEY L"IsIfxTpmWeakKey"
+#define BCRYPT_HKDF_HASH_ALGORITHM L"HkdfHashAlgorithm"
+#define BCRYPT_HKDF_SALT_AND_FINALIZE L"HkdfSaltAndFinalize"
+#define BCRYPT_HKDF_PRK_AND_FINALIZE L"HkdfPrkAndFinalize"
+#endif
 
 #define BCRYPT_SUPPORTED_PAD_ROUTER 0x00000001
 #define BCRYPT_SUPPORTED_PAD_PKCS1_ENC 0x00000002
@@ -136,6 +164,9 @@
 #define BCRYPT_PAD_PKCS1 0x00000002
 #define BCRYPT_PAD_OAEP 0x00000004
 #define BCRYPT_PAD_PSS 0x00000008
+#if NTDDI_VERSION >= NTDDI_WINBLUE
+#define BCRYPT_PAD_PKCS1_OPTIONAL_HASH_OID 0x00000010
+#endif
 
 #define BCRYPTBUFFER_VERSION 0
 
@@ -220,18 +251,30 @@
 
 #define BCRYPT_RSAFULLPRIVATE_MAGIC 0x33415352
 
+#if NTDDI_VERSION >= NTDDI_WIN8
 #define BCRYPT_GLOBAL_PARAMETERS L"SecretAgreementParam"
 #define BCRYPT_PRIVATE_KEY L"PrivKeyVal"
+#endif
 
 #define BCRYPT_ECCPUBLIC_BLOB L"ECCPUBLICBLOB"
 #define BCRYPT_ECCPRIVATE_BLOB L"ECCPRIVATEBLOB"
 
+#if NTDDI_VERSION >= NTDDI_WINTHRESHOLD
+#define BCRYPT_ECCFULLPUBLIC_BLOB L"ECCFULLPUBLICBLOB"
+#define BCRYPT_ECCFULLPRIVATE_BLOB L"ECCFULLPRIVATEBLOB"
+#define SSL_ECCPUBLIC_BLOB L"SSLECCPUBLICBLOB"
+#endif
+
 #define BCRYPT_ECDH_PUBLIC_P256_MAGIC 0x314b4345
 #define BCRYPT_ECDH_PRIVATE_P256_MAGIC 0x324b4345
 #define BCRYPT_ECDH_PUBLIC_P384_MAGIC 0x334b4345
 #define BCRYPT_ECDH_PRIVATE_P384_MAGIC 0x344b4345
 #define BCRYPT_ECDH_PUBLIC_P521_MAGIC 0x354b4345
 #define BCRYPT_ECDH_PRIVATE_P521_MAGIC 0x364b4345
+#if NTDDI_VERSION >= NTDDI_WINTHRESHOLD
+#define BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC 0x504B4345
+#define BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC 0x564B4345
+#endif
 
 #define BCRYPT_ECDSA_PUBLIC_P256_MAGIC 0x31534345
 #define BCRYPT_ECDSA_PRIVATE_P256_MAGIC 0x32534345
@@ -239,6 +282,10 @@
 #define BCRYPT_ECDSA_PRIVATE_P384_MAGIC 0x34534345
 #define BCRYPT_ECDSA_PUBLIC_P521_MAGIC 0x35534345
 #define BCRYPT_ECDSA_PRIVATE_P521_MAGIC 0x36534345
+#if NTDDI_VERSION >= NTDDI_WINTHRESHOLD
+#define BCRYPT_ECDSA_PUBLIC_GENERIC_MAGIC 0x50444345
+#define BCRYPT_ECDSA_PRIVATE_GENERIC_MAGIC 0x56444345
+#endif
 
 #define BCRYPT_DH_PUBLIC_BLOB L"DHPUBLICBLOB"
 #define BCRYPT_DH_PRIVATE_BLOB L"DHPRIVATEBLOB"
@@ -460,6 +507,32 @@
     UCHAR Count[4];
   } BCRYPT_DSA_PARAMETER_HEADER_V2;
 
+  typedef struct _BCRYPT_ECC_CURVE_NAMES {
+    ULONG dwEccCurveNames;
+    LPWSTR *pEccCurveNames;
+  } BCRYPT_ECC_CURVE_NAMES;
+
+  typedef enum {
+    BCRYPT_HASH_OPERATION_HASH_DATA = 1,
+    BCRYPT_HASH_OPERATION_FINISH_HASH = 2
+  } BCRYPT_HASH_OPERATION_TYPE;
+
+  typedef struct _BCRYPT_MULTI_HASH_OPERATION {
+    ULONG iHash;
+    BCRYPT_HASH_OPERATION_TYPE hashOperation;
+    PUCHAR pbBuffer;
+    ULONG cbBuffer;
+  } BCRYPT_MULTI_HASH_OPERATION;
+
+  typedef enum {
+    BCRYPT_OPERATION_TYPE_HASH = 1
+  } BCRYPT_MULTI_OPERATION_TYPE;
+
+  typedef struct _BCRYPT_MULTI_OBJECT_LENGTH_STRUCT {
+    ULONG cbPerObject;
+    ULONG cbPerElement;
+  } BCRYPT_MULTI_OBJECT_LENGTH_STRUCT;
+
   typedef struct _BCRYPT_ALGORITHM_IDENTIFIER {
     LPWSTR pszName;
     ULONG dwClass;
@@ -577,8 +650,15 @@
   NTSTATUS WINAPI BCryptCreateHash (BCRYPT_ALG_HANDLE hAlgorithm, BCRYPT_HASH_HANDLE *phHash, PUCHAR pbHashObject, ULONG cbHashObject, PUCHAR pbSecret, ULONG cbSecret, ULONG dwFlags);
   NTSTATUS WINAPI BCryptHashData (BCRYPT_HASH_HANDLE hHash, PUCHAR pbInput, ULONG cbInput, ULONG dwFlags);
   NTSTATUS WINAPI BCryptFinishHash (BCRYPT_HASH_HANDLE hHash, PUCHAR pbOutput, ULONG cbOutput, ULONG dwFlags);
+#if (NTDDI_VERSION > NTDDI_WINBLUE || (NTDDI_VERSION == NTDDI_WINBLUE && defined(WINBLUE_KBSPRING14)))
+  NTSTATUS WINAPI BCryptCreateMultiHash (BCRYPT_ALG_HANDLE hAlgorithm, BCRYPT_HASH_HANDLE *phHash, ULONG nHashes, PUCHAR pbHashObject, ULONG cbHashObject, PUCHAR pbSecret, ULONG cbSecret, ULONG dwFlags);
+  NTSTATUS WINAPI BCryptProcessMultiOperations (BCRYPT_HANDLE hObject, BCRYPT_MULTI_OPERATION_TYPE operationType, PVOID pOperations, ULONG cbOperations, ULONG dwFlags);
+#endif
   NTSTATUS WINAPI BCryptDuplicateHash (BCRYPT_HASH_HANDLE hHash, BCRYPT_HASH_HANDLE *phNewHash, PUCHAR pbHashObject, ULONG cbHashObject, ULONG dwFlags);
   NTSTATUS WINAPI BCryptDestroyHash (BCRYPT_HASH_HANDLE hHash);
+#if NTDDI_VERSION >= NTDDI_WINTHRESHOLD
+  NTSTATUS WINAPI BCryptHash (BCRYPT_ALG_HANDLE hAlgorithm, PUCHAR pbSecret, ULONG cbSecret, PUCHAR pbInput, ULONG cbInput, PUCHAR pbOutput, ULONG cbOutput);
+#endif
   NTSTATUS WINAPI BCryptGenRandom (BCRYPT_ALG_HANDLE hAlgorithm, PUCHAR pbBuffer, ULONG cbBuffer, ULONG dwFlags);
   NTSTATUS WINAPI BCryptDeriveKeyCapi (BCRYPT_HASH_HANDLE hHash, BCRYPT_ALG_HANDLE hTargetAlg, PUCHAR pbDerivedKey, ULONG cbDerivedKey, ULONG dwFlags);
   NTSTATUS WINAPI BCryptDeriveKeyPBKDF2 (BCRYPT_ALG_HANDLE hPrf, PUCHAR pbPassword, ULONG cbPassword, PUCHAR pbSalt, ULONG cbSalt, ULONGLONG cIterations, PUCHAR pbDerivedKey, ULONG cbDerivedKey, ULONG dwFlags);
@@ -603,10 +683,10 @@
   NTSTATUS WINAPI BCryptSetContextFunctionProperty (ULONG dwTable, LPCWSTR pszContext, ULONG dwInterface, LPCWSTR pszFunction, LPCWSTR pszProperty, ULONG cbValue, PUCHAR pbValue);
   NTSTATUS WINAPI BCryptQueryContextFunctionProperty (ULONG dwTable, LPCWSTR pszContext, ULONG dwInterface, LPCWSTR pszFunction, LPCWSTR pszProperty, ULONG *pcbValue, PUCHAR *ppbValue);
   NTSTATUS WINAPI BCryptRegisterConfigChangeNotify (HANDLE *phEvent);
+  NTSTATUS WINAPI BCryptUnregisterConfigChangeNotify (HANDLE hEvent);
 #else
   NTSTATUS WINAPI BCryptRegisterConfigChangeNotify (PRKEVENT pEvent);
   NTSTATUS WINAPI BCryptUnregisterConfigChangeNotify (PRKEVENT pEvent);
-  NTSTATUS WINAPI BCryptUnregisterConfigChangeNotify (HANDLE hEvent);
 #endif
 #endif
 
