[PSDK]
authorAmine Khaldi <amine.khaldi@reactos.org>
Fri, 30 Aug 2013 10:17:22 +0000 (10:17 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Fri, 30 Aug 2013 10:17:22 +0000 (10:17 +0000)
* Annotate sspi.h.

svn path=/trunk/; revision=59897

reactos/include/psdk/sspi.h

index 8579c4f..2c31445 100644 (file)
@@ -126,11 +126,10 @@ typedef struct _SecPkgInfoW
 #define SECPKG_FLAG_APPCONTAINER_PASSTHROUGH 0x00400000
 #define SECPKG_FLAG_APPCONTAINER_CHECKS      0x00800000
 
-typedef struct _SecBuffer
-{
-    ULONG cbBuffer;
-    ULONG BufferType;
-    void         *pvBuffer;
+typedef struct _SecBuffer {
+  ULONG cbBuffer;
+  ULONG BufferType;
+  _Field_size_bytes_(cbBuffer) void *pvBuffer;
 } SecBuffer, *PSecBuffer;
 
 /* values for BufferType */
@@ -155,11 +154,10 @@ typedef struct _SecBuffer
 #define SECBUFFER_READONLY_WITH_CHECKSUM 0x10000000
 #define SECBUFFER_RESERVED               0x60000000
 
-typedef struct _SecBufferDesc
-{
-    ULONG ulVersion;
-    ULONG cBuffers;
-    PSecBuffer    pBuffers;
+typedef struct _SecBufferDesc {
+  ULONG ulVersion;
+  ULONG cBuffers;
+  _Field_size_(cBuffers) PSecBuffer pBuffers;
 } SecBufferDesc, *PSecBufferDesc;
 
 /* values for ulVersion */
@@ -168,10 +166,18 @@ typedef struct _SecBufferDesc
 typedef void (SEC_ENTRY *SEC_GET_KEY_FN)(void *Arg, void *Principal,
  ULONG KeyVer, void **Key, SECURITY_STATUS *Status);
 
-SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesA(PULONG pcPackages,
- PSecPkgInfoA *ppPackageInfo);
-SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesW(PULONG pcPackages,
- PSecPkgInfoW *ppPackageInfo);
+SECURITY_STATUS
+SEC_ENTRY
+EnumerateSecurityPackagesA(
+  _Out_ PULONG pcPackages,
+  _Outptr_ PSecPkgInfoA *ppPackageInfo);
+
+SECURITY_STATUS
+SEC_ENTRY
+EnumerateSecurityPackagesW(
+  _Out_ PULONG pcPackages,
+  _Outptr_ PSecPkgInfoW *ppPackageInfo);
+
 #define EnumerateSecurityPackages WINELIB_NAME_AW(EnumerateSecurityPackages)
 
 typedef SECURITY_STATUS (SEC_ENTRY *ENUMERATE_SECURITY_PACKAGES_FN_A)(PULONG,
@@ -180,10 +186,20 @@ typedef SECURITY_STATUS (SEC_ENTRY *ENUMERATE_SECURITY_PACKAGES_FN_W)(PULONG,
  PSecPkgInfoW *);
 #define ENUMERATE_SECURITY_PACKAGES_FN WINELIB_NAME_AW(ENUMERATE_SECURITY_PACKAGES_FN_)
 
-SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesA(
- PCredHandle phCredential, ULONG ulAttribute, void *pBuffer);
-SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesW(
- PCredHandle phCredential, ULONG ulAttribute, void *pBuffer);
+SECURITY_STATUS
+SEC_ENTRY
+QueryCredentialsAttributesA(
+  _In_ PCredHandle phCredential,
+  _In_ ULONG ulAttribute,
+  _Inout_ void *pBuffer);
+
+SECURITY_STATUS
+SEC_ENTRY
+QueryCredentialsAttributesW(
+  _In_ PCredHandle phCredential,
+  _In_ ULONG ulAttribute,
+  _Inout_ void *pBuffer);
+
 #define QueryCredentialsAttributes WINELIB_NAME_AW(QueryCredentialsAttributes)
 
 typedef SECURITY_STATUS (SEC_ENTRY *QUERY_CREDENTIALS_ATTRIBUTES_FN_A)
@@ -208,14 +224,32 @@ typedef struct _SecPkgCredentials_NamesW
 
 #define SecPkgCredentials_Names WINELIB_NAME_AW(SecPkgCredentials_Names)
 
-SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleA(
- SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialsUse,
- PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn,
- PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry);
-SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleW(
- SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialsUse,
- PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn,
- PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry);
+SECURITY_STATUS
+SEC_ENTRY
+AcquireCredentialsHandleA(
+  _In_opt_ SEC_CHAR *pszPrincipal,
+  _In_ SEC_CHAR *pszPackage,
+  _In_ ULONG fCredentialsUse,
+  _In_opt_ PLUID pvLogonID,
+  _In_opt_ PVOID pAuthData,
+  _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
+  _In_opt_ PVOID pvGetKeyArgument,
+  _Out_ PCredHandle phCredential,
+  _Out_opt_ PTimeStamp ptsExpiry);
+
+SECURITY_STATUS
+SEC_ENTRY
+AcquireCredentialsHandleW(
+  _In_opt_ SEC_WCHAR *pszPrincipal,
+  _In_ SEC_WCHAR *pszPackage,
+  _In_ ULONG fCredentialsUse,
+  _In_opt_ PLUID pvLogonID,
+  _In_opt_ PVOID pAuthData,
+  _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
+  _In_opt_ PVOID pvGetKeyArgument,
+  _Out_ PCredHandle phCredential,
+  _Out_opt_ PTimeStamp ptsExpiry);
+
 #define AcquireCredentialsHandle WINELIB_NAME_AW(AcquireCredentialsHandle)
 
 /* flags for fCredentialsUse */
@@ -233,29 +267,51 @@ typedef SECURITY_STATUS (SEC_ENTRY *ACQUIRE_CREDENTIALS_HANDLE_FN_W)(
  PCredHandle, PTimeStamp);
 #define ACQUIRE_CREDENTIALS_HANDLE_FN WINELIB_NAME_AW(ACQUIRE_CREDENTIALS_HANDLE_FN_)
 
-SECURITY_STATUS SEC_ENTRY FreeContextBuffer(PVOID pv);
+SECURITY_STATUS SEC_ENTRY FreeContextBuffer(_Inout_ PVOID pv);
 
-typedef SECURITY_STATUS (SEC_ENTRY *FREE_CONTEXT_BUFFER_FN)(PVOID);
+typedef SECURITY_STATUS (SEC_ENTRY *FREE_CONTEXT_BUFFER_FN)(_Inout_ PVOID);
 
-SECURITY_STATUS SEC_ENTRY FreeCredentialsHandle(PCredHandle
- phCredential);
+SECURITY_STATUS
+SEC_ENTRY
+FreeCredentialsHandle(
+  _In_ PCredHandle phCredential);
 
 #define FreeCredentialHandle FreeCredentialsHandle
 
 typedef SECURITY_STATUS (SEC_ENTRY *FREE_CREDENTIALS_HANDLE_FN)(PCredHandle);
 
-SECURITY_STATUS SEC_ENTRY InitializeSecurityContextA(
- PCredHandle phCredential, PCtxtHandle phContext,
- SEC_CHAR *pszTargetName, ULONG fContextReq,
- ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput,
- ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput,
- ULONG *pfContextAttr, PTimeStamp ptsExpiry);
-SECURITY_STATUS SEC_ENTRY InitializeSecurityContextW(
- PCredHandle phCredential, PCtxtHandle phContext,
- SEC_WCHAR *pszTargetName, ULONG fContextReq,
- ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput,
- ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput,
- ULONG *pfContextAttr, PTimeStamp ptsExpiry);
+SECURITY_STATUS
+SEC_ENTRY
+InitializeSecurityContextA(
+  _In_opt_ PCredHandle phCredential,
+  _In_opt_ PCtxtHandle phContext,
+  _In_opt_ SEC_CHAR *pszTargetName,
+  _In_ ULONG fContextReq,
+  _In_ ULONG Reserved1,
+  _In_ ULONG TargetDataRep,
+  _In_opt_ PSecBufferDesc pInput,
+  _In_ ULONG Reserved2,
+  _Inout_opt_ PCtxtHandle phNewContext,
+  _Inout_opt_ PSecBufferDesc pOutput,
+  _Out_ ULONG *pfContextAttr,
+  _Out_opt_ PTimeStamp ptsExpiry);
+
+SECURITY_STATUS
+SEC_ENTRY
+InitializeSecurityContextW(
+  _In_opt_ PCredHandle phCredential,
+  _In_opt_ PCtxtHandle phContext,
+  _In_opt_ SEC_WCHAR *pszTargetName,
+  _In_ ULONG fContextReq,
+  _In_ ULONG Reserved1,
+  _In_ ULONG TargetDataRep,
+  _In_opt_ PSecBufferDesc pInput,
+  _In_ ULONG Reserved2,
+  _Inout_opt_ PCtxtHandle phNewContext,
+  _Inout_opt_ PSecBufferDesc pOutput,
+  _Out_ ULONG *pfContextAttr,
+  _Out_opt_ PTimeStamp ptsExpiry);
+
 #define InitializeSecurityContext WINELIB_NAME_AW(InitializeSecurityContext)
 
 typedef SECURITY_STATUS (SEC_ENTRY *INITIALIZE_SECURITY_CONTEXT_FN_A)
@@ -315,11 +371,18 @@ typedef SECURITY_STATUS (SEC_ENTRY *INITIALIZE_SECURITY_CONTEXT_FN_W)
 #define ISC_RET_RESERVED1              0x00100000
 #define ISC_RET_FRAGMENT_ONLY          0x00200000
 
-SECURITY_STATUS SEC_ENTRY AcceptSecurityContext(
- PCredHandle phCredential, PCtxtHandle phContext, PSecBufferDesc pInput,
- ULONG fContextReq, ULONG TargetDataRep,
- PCtxtHandle phNewContext, PSecBufferDesc pOutput,
- ULONG *pfContextAttr, PTimeStamp ptsExpiry);
+SECURITY_STATUS
+SEC_ENTRY
+AcceptSecurityContext(
+  _In_opt_ PCredHandle phCredential,
+  _In_opt_ PCtxtHandle phContext,
+  _In_opt_ PSecBufferDesc pInput,
+  _In_ ULONG fContextReq,
+  _In_ ULONG TargetDataRep,
+  _Inout_opt_ PCtxtHandle phNewContext,
+  _Inout_opt_ PSecBufferDesc pOutput,
+  _Out_ ULONG *pfContextAttr,
+  _Out_opt_ PTimeStamp ptsExpiry);
 
 typedef SECURITY_STATUS (SEC_ENTRY *ACCEPT_SECURITY_CONTEXT_FN)(PCredHandle,
  PCtxtHandle, PSecBufferDesc, ULONG, ULONG, PCtxtHandle,
@@ -376,27 +439,42 @@ typedef SECURITY_STATUS (SEC_ENTRY *ACCEPT_SECURITY_CONTEXT_FN)(PCredHandle,
 #define SECURITY_NATIVE_DREP           0x00000010
 #define SECURITY_NETWORK_DREP          0x00000000
 
-
-SECURITY_STATUS SEC_ENTRY CompleteAuthToken(PCtxtHandle phContext,
- PSecBufferDesc pToken);
+SECURITY_STATUS
+SEC_ENTRY
+CompleteAuthToken(
+  _In_ PCtxtHandle phContext,
+  _In_ PSecBufferDesc pToken);
 
 typedef SECURITY_STATUS (SEC_ENTRY *COMPLETE_AUTH_TOKEN_FN)(PCtxtHandle,
  PSecBufferDesc);
 
-SECURITY_STATUS SEC_ENTRY DeleteSecurityContext(PCtxtHandle phContext);
+SECURITY_STATUS SEC_ENTRY DeleteSecurityContext(_In_ PCtxtHandle phContext);
 
 typedef SECURITY_STATUS (SEC_ENTRY *DELETE_SECURITY_CONTEXT_FN)(PCtxtHandle);
 
-SECURITY_STATUS SEC_ENTRY ApplyControlToken(PCtxtHandle phContext,
- PSecBufferDesc pInput);
+SECURITY_STATUS
+SEC_ENTRY
+ApplyControlToken(
+  _In_ PCtxtHandle phContext,
+  _In_ PSecBufferDesc pInput);
 
 typedef SECURITY_STATUS (SEC_ENTRY *APPLY_CONTROL_TOKEN_FN)(PCtxtHandle,
  PSecBufferDesc);
 
-SECURITY_STATUS SEC_ENTRY QueryContextAttributesA(PCtxtHandle phContext,
- ULONG ulAttribute, void *pBuffer);
-SECURITY_STATUS SEC_ENTRY QueryContextAttributesW(PCtxtHandle phContext,
- ULONG ulAttribute, void *pBuffer);
+SECURITY_STATUS
+SEC_ENTRY
+QueryContextAttributesA(
+  _In_ PCtxtHandle phContext,
+  _In_ ULONG ulAttribute,
+  _Out_ void *pBuffer);
+
+SECURITY_STATUS
+SEC_ENTRY
+QueryContextAttributesW(
+  _In_ PCtxtHandle phContext,
+  _In_ ULONG ulAttribute,
+  _Out_ void *pBuffer);
+
 #define QueryContextAttributes WINELIB_NAME_AW(QueryContextAttributes)
 
 typedef SECURITY_STATUS (SEC_ENTRY *QUERY_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle,
@@ -528,10 +606,9 @@ typedef struct _SecPkgContext_PasswordExpiry
     TimeStamp tsPasswordExpires;
 } SecPkgContext_PasswordExpiry, *PSecPkgContext_PasswordExpiry;
 
-typedef struct _SecPkgContext_SessionKey
-{
-    ULONG  SessionKeyLength;
-    unsigned char *SessionKey;
+typedef struct _SecPkgContext_SessionKey {
+  ULONG SessionKeyLength;
+  _Field_size_bytes_(SessionKeyLength) unsigned char *SessionKey;
 } SecPkgContext_SessionKey, *PSecPkgContext_SessionKey;
 
 typedef struct _SecPkgContext_PackageInfoA
@@ -632,31 +709,53 @@ typedef struct _SecPkgContext_Target
     char          *Target;
 } SecPkgContext_Target, *PSecPkgContext_Target;
 
-SECURITY_STATUS SEC_ENTRY ImpersonateSecurityContext(PCtxtHandle phContext);
+_Check_return_
+SECURITY_STATUS
+SEC_ENTRY
+ImpersonateSecurityContext(
+  _In_ PCtxtHandle phContext);
 
 typedef SECURITY_STATUS (SEC_ENTRY *IMPERSONATE_SECURITY_CONTEXT_FN)
  (PCtxtHandle);
 
-SECURITY_STATUS SEC_ENTRY RevertSecurityContext(PCtxtHandle phContext);
+SECURITY_STATUS SEC_ENTRY RevertSecurityContext(_In_ PCtxtHandle phContext);
 
 typedef SECURITY_STATUS (SEC_ENTRY *REVERT_SECURITY_CONTEXT_FN)(PCtxtHandle);
 
-SECURITY_STATUS SEC_ENTRY MakeSignature(PCtxtHandle phContext,
- ULONG fQOP, PSecBufferDesc pMessage, ULONG MessageSeqNo);
+SECURITY_STATUS
+SEC_ENTRY
+MakeSignature(
+  _In_ PCtxtHandle phContext,
+  _In_ ULONG fQOP,
+  _In_ PSecBufferDesc pMessage,
+  _In_ ULONG MessageSeqNo);
 
 typedef SECURITY_STATUS (SEC_ENTRY *MAKE_SIGNATURE_FN)(PCtxtHandle,
  ULONG, PSecBufferDesc, ULONG);
 
-SECURITY_STATUS SEC_ENTRY VerifySignature(PCtxtHandle phContext,
- PSecBufferDesc pMessage, ULONG MessageSeqNo, PULONG pfQOP);
+SECURITY_STATUS
+SEC_ENTRY
+VerifySignature(
+  _In_ PCtxtHandle phContext,
+  _In_ PSecBufferDesc pMessage,
+  _In_ ULONG MessageSeqNo,
+  _Out_ PULONG pfQOP);
 
 typedef SECURITY_STATUS (SEC_ENTRY *VERIFY_SIGNATURE_FN)(PCtxtHandle,
  PSecBufferDesc, ULONG, PULONG);
 
-SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoA(
- SEC_CHAR *pszPackageName, PSecPkgInfoA *ppPackageInfo);
-SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoW(
- SEC_WCHAR *pszPackageName, PSecPkgInfoW *ppPackageInfo);
+SECURITY_STATUS
+SEC_ENTRY
+QuerySecurityPackageInfoA(
+  _In_ SEC_CHAR *pszPackageName,
+  _Outptr_ PSecPkgInfoA *ppPackageInfo);
+
+SECURITY_STATUS
+SEC_ENTRY
+QuerySecurityPackageInfoW(
+  _In_ SEC_WCHAR *pszPackageName,
+  _Outptr_ PSecPkgInfoW *ppPackageInfo);
+
 #define QuerySecurityPackageInfo WINELIB_NAME_AW(QuerySecurityPackageInfo)
 
 typedef SECURITY_STATUS (SEC_ENTRY *QUERY_SECURITY_PACKAGE_INFO_FN_A)
@@ -665,8 +764,13 @@ typedef SECURITY_STATUS (SEC_ENTRY *QUERY_SECURITY_PACKAGE_INFO_FN_W)
  (SEC_WCHAR *, PSecPkgInfoW *);
 #define QUERY_SECURITY_PACKAGE_INFO_FN WINELIB_NAME_AW(QUERY_SECURITY_PACKAGE_INFO_FN_)
 
-SECURITY_STATUS SEC_ENTRY ExportSecurityContext(PCtxtHandle phContext,
- ULONG fFlags, PSecBuffer pPackedContext, void **pToken);
+SECURITY_STATUS
+SEC_ENTRY
+ExportSecurityContext(
+  _In_ PCtxtHandle phContext,
+  _In_ ULONG fFlags,
+  _Out_ PSecBuffer pPackedContext,
+  _Out_ void **pToken);
 
 typedef SECURITY_STATUS (SEC_ENTRY *EXPORT_SECURITY_CONTEXT_FN)(PCtxtHandle,
  ULONG, PSecBuffer, void **);
@@ -675,10 +779,22 @@ typedef SECURITY_STATUS (SEC_ENTRY *EXPORT_SECURITY_CONTEXT_FN)(PCtxtHandle,
 #define SECPKG_CONTEXT_EXPORT_RESET_NEW  0x00000001
 #define SECPKG_CONTEXT_EXPORT_DELETE_OLD 0x00000002
 
-SECURITY_STATUS SEC_ENTRY ImportSecurityContextA(SEC_CHAR *pszPackage,
- PSecBuffer pPackedContext, void *Token, PCtxtHandle phContext);
-SECURITY_STATUS SEC_ENTRY ImportSecurityContextW(SEC_WCHAR *pszPackage,
- PSecBuffer pPackedContext, void *Token, PCtxtHandle phContext);
+SECURITY_STATUS
+SEC_ENTRY
+ImportSecurityContextA(
+  _In_ SEC_CHAR *pszPackage,
+  _In_ PSecBuffer pPackedContext,
+  _In_ void *Token,
+  _Out_ PCtxtHandle phContext);
+
+SECURITY_STATUS
+SEC_ENTRY
+ImportSecurityContextW(
+  _In_ SEC_WCHAR *pszPackage,
+  _In_ PSecBuffer pPackedContext,
+  _In_ void *Token,
+  _Out_ PCtxtHandle phContext);
+
 #define ImportSecurityContext WINELIB_NAME_AW(ImportSecurityContext)
 
 typedef SECURITY_STATUS (SEC_ENTRY *IMPORT_SECURITY_CONTEXT_FN_A)(SEC_CHAR *,
@@ -687,14 +803,30 @@ typedef SECURITY_STATUS (SEC_ENTRY *IMPORT_SECURITY_CONTEXT_FN_W)(SEC_WCHAR *,
  PSecBuffer, void *, PCtxtHandle);
 #define IMPORT_SECURITY_CONTEXT_FN WINELIB_NAME_AW(IMPORT_SECURITY_CONTEXT_FN_)
 
-SECURITY_STATUS SEC_ENTRY AddCredentialsA(PCredHandle hCredentials,
- SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialUse,
- void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument,
- PTimeStamp ptsExpiry);
-SECURITY_STATUS SEC_ENTRY AddCredentialsW(PCredHandle hCredentials,
- SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialUse,
- void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument,
- PTimeStamp ptsExpiry);
+SECURITY_STATUS
+SEC_ENTRY
+AddCredentialsA(
+  _In_ PCredHandle hCredentials,
+  _In_opt_ SEC_CHAR *pszPrincipal,
+  _In_ SEC_CHAR *pszPackage,
+  _In_ ULONG fCredentialUse,
+  _In_opt_ void *pAuthData,
+  _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
+  _In_opt_ void *pvGetKeyArgument,
+  _Out_opt_ PTimeStamp ptsExpiry);
+
+SECURITY_STATUS
+SEC_ENTRY
+AddCredentialsW(
+  _In_ PCredHandle hCredentials,
+  _In_opt_ SEC_WCHAR *pszPrincipal,
+  _In_ SEC_WCHAR *pszPackage,
+  _In_ ULONG fCredentialUse,
+  _In_opt_ void *pAuthData,
+  _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
+  _In_opt_ void *pvGetKeyArgument,
+  _Out_opt_ PTimeStamp ptsExpiry);
+
 #define AddCredentials WINELIB_NAME_AW(AddCredentials)
 
 typedef SECURITY_STATUS (SEC_ENTRY *ADD_CREDENTIALS_FN_A)(PCredHandle,
@@ -704,16 +836,30 @@ typedef SECURITY_STATUS (SEC_ENTRY *ADD_CREDENTIALS_FN_W)(PCredHandle,
  SEC_WCHAR *, SEC_WCHAR *, ULONG, void *, SEC_GET_KEY_FN, void *,
  PTimeStamp);
 
-SECURITY_STATUS SEC_ENTRY QuerySecurityContextToken(PCtxtHandle phContext,
- HANDLE *phToken);
+SECURITY_STATUS
+SEC_ENTRY
+QuerySecurityContextToken(
+  _In_ PCtxtHandle phContext,
+  _Out_ HANDLE *phToken);
 
 typedef SECURITY_STATUS (SEC_ENTRY *QUERY_SECURITY_CONTEXT_TOKEN_FN)
  (PCtxtHandle, HANDLE *);
 
-SECURITY_STATUS SEC_ENTRY EncryptMessage(PCtxtHandle phContext, ULONG fQOP,
- PSecBufferDesc pMessage, ULONG MessageSeqNo);
-SECURITY_STATUS SEC_ENTRY DecryptMessage(PCtxtHandle phContext,
- PSecBufferDesc pMessage, ULONG MessageSeqNo, PULONG pfQOP);
+SECURITY_STATUS
+SEC_ENTRY
+EncryptMessage(
+  _In_ PCtxtHandle phContext,
+  _In_ ULONG fQOP,
+  _In_ PSecBufferDesc pMessage,
+  _In_ ULONG MessageSeqNo);
+
+SECURITY_STATUS
+SEC_ENTRY
+DecryptMessage(
+  _In_ PCtxtHandle phContext,
+  _In_ PSecBufferDesc pMessage,
+  _In_ ULONG MessageSeqNo,
+  _Out_opt_ PULONG pfQOP);
 
 /* values for EncryptMessage fQOP */
 #define SECQOP_WRAP_NO_ENCRYPT 0x80000001
@@ -723,10 +869,22 @@ typedef SECURITY_STATUS (SEC_ENTRY *ENCRYPT_MESSAGE_FN)(PCtxtHandle, ULONG,
 typedef SECURITY_STATUS (SEC_ENTRY *DECRYPT_MESSAGE_FN)(PCtxtHandle,
  PSecBufferDesc, ULONG, PULONG);
 
-SECURITY_STATUS SEC_ENTRY SetContextAttributesA(PCtxtHandle phContext,
- ULONG ulAttribute, void *pBuffer, ULONG cbBuffer);
-SECURITY_STATUS SEC_ENTRY SetContextAttributesW(PCtxtHandle phContext,
- ULONG ulAttribute, void *pBuffer, ULONG cbBuffer);
+SECURITY_STATUS
+SEC_ENTRY
+SetContextAttributesA(
+  _In_ PCtxtHandle phContext,
+  _In_ ULONG ulAttribute,
+  _In_reads_bytes_(cbBuffer) void *pBuffer,
+  _In_ ULONG cbBuffer);
+
+SECURITY_STATUS
+SEC_ENTRY
+SetContextAttributesW(
+  _In_ PCtxtHandle phContext,
+  _In_ ULONG ulAttribute,
+  _In_reads_bytes_(cbBuffer) void *pBuffer,
+  _In_ ULONG cbBuffer);
+
 #define SetContextAttributes WINELIB_NAME_AW(SetContextAttributes)
 
 typedef SECURITY_STATUS (SEC_ENTRY *SET_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle,