Função QueryContextAttributes (Schannel)

A função QueryContextAttributes (Schannel) permite que um aplicativo de transporte consulte o pacote de segurança Schannel para determinados atributos de um contexto de segurança.

Sintaxe

SECURITY_STATUS SEC_ENTRY QueryContextAttributes(
  _In_  PCtxtHandle phContext,
  _In_  ULONG       ulAttribute,
  _Out_ PVOID       pBuffer
);

Parâmetros

phContext [in]

Um identificador para o contexto de segurança a ser consultado.

ulAttribute [in]

Especifica o atributo do contexto a ser retornado. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
SECPKG_ATTR_ACCESS_TOKEN
13
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_AccessToken .
Retorna um identificador para o token de acesso.
SECPKG_ATTR_APP_DATA
0x5e
O parâmetro pBuffer contém um ponteiro para uma estrutura de SecPkgContext_SessionAppData .
Retorna ou especifica os dados do aplicativo para a sessão.
Esse atributo só tem suporte no pacote de segurança do Schannel.
SECPKG_ATTR_AUTHORITY
6
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_Authority .
Consulta o nome da autoridade de autenticação.
SECPKG_ATTR_CIPHER_INFO
0x64
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_CipherInfo .
Retorna uma nova estrutura de informações de criptografia CNG.
SECPKG_ATTR_CONNECTION_INFO
0x5a
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_ConnectionInfo .
Retorna informações detalhadas sobre a conexão estabelecida.
SECPKG_ATTR_KEYING_MATERIAL
0x6b
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_KeyingMaterial . O recurso de exportação de material de chave segue o padrão RFC 5705.
Consultar esse atributo antes que o segredo master tenha sido gerado ou antes que o atributo SECPKG_ATTR_KEYING_MATERIAL_INFO tenha sido definido resulte em um erro.
Esse atributo é compatível apenas com o pacote de segurança do Schannel em Windows 10 e Windows Server 2016 ou versões posteriores.
SECPKG_ATTR_CREDS_2
0x80000086
O parâmetro pBuffer contém um ponteiro para uma estrutura de SecPkgContext_ClientCreds que especifica as credenciais do cliente.
Se a credencial do cliente for nome de usuário e senha, o buffer será uma estrutura de KERB_INTERACTIVE_LOGON empacotada.
Se a credencial do cliente for o nome de usuário e o PIN de cartão inteligente, o buffer será uma estrutura de KERB_CERTIFICATE_LOGON empacotada.
Se a credencial do cliente for uma credencial de identidade online, o buffer será uma estrutura de SEC_WINNT_AUTH_IDENTITY_EX2 marshaled.
Esse atributo só tem suporte no servidor CredSSP.
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse valor.
SECPKG_ATTR_DCE_INFO
3
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_DceInfo .
Consultas para dados de autorização usados pelos serviços de DCE.
SECPKG_ATTR_EAP_KEY_BLOCK
0x5b
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_EapKeyBlock .
Consultas para dados de chave usados pelo protocolo TLS EAP.
Esse atributo só tem suporte no pacote de segurança do Schannel.
SECPKG_ATTR_ENDPOINT_BINDINGS
26
O parâmetro pBuffer contém um ponteiro para uma estrutura de SecPkgContext_Bindings que contém as Associações de Canal para TLS (RFC 5929).
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse valor.
SECPKG_ATTR_FLAGS
14
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_Flags .
Retorna informações sobre os sinalizadores de contexto negociados.
SECPKG_ATTR_ISSUER_LIST_EX
0x59
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_IssuerListInfoEx .
Retorna uma lista de emissores de certificado que são aceitos pelo servidor.
Esse atributo só tem suporte no pacote de segurança do Schannel.
SECPKG_ATTR_KEY_INFO
5
O parâmetro pBuffer contém um ponteiro para uma estrutura de SecPkgContext_KeyInfo .
Consulta informações sobre as chaves usadas em um contexto de segurança.
SECPKG_ATTR_LIFESPAN
2
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_Lifespan .
Consulta a duração do contexto.
SECPKG_ATTR_LOCAL_CERT_CONTEXT
0x54
O parâmetro pBuffer contém um ponteiro para uma estrutura PCCERT_CONTEXT.
Localiza um contexto de certificado que contém um certificado final local.
Esse atributo só tem suporte no pacote de segurança do Schannel.
SECPKG_ATTR_LOCAL_CRED
O parâmetro pBuffer contém um ponteiro para uma estrutura de SecPkgContext_LocalCredentialInfo . (obsoleto)
Substituído por SECPKG_ATTR_LOCAL_CERT_CONTEXT.
SECPKG_ATTR_NAMES
1
O parâmetro pBuffer contém um ponteiro para uma estrutura de SecPkgContext_Names .
Consulta o nome associado ao contexto.
SECPKG_ATTR_NATIVE_NAMES
13
O parâmetro pBuffer contém um ponteiro para uma estrutura de SecPkgContext_NativeNames .
Retorna o CNAME (nome principal) do tíquete de saída.
SECPKG_ATTR_NEGOTIATION_INFO
12
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_NegotiationInfo .
Retorna informações sobre o pacote de segurança a ser usado com o processo de negociação e o estado atual da negociação para o uso desse pacote.
SECPKG_ATTR_PACKAGE_INFO
10
O parâmetro pBuffer contém um ponteiro para uma estrutura de SecPkgContext_PackageInfo .
Retorna informações sobre o SSP em uso.
SECPKG_ATTR_PASSWORD_EXPIRY
8
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_PasswordExpiry .
Retorna informações de expiração de senha.
SECPKG_ATTR_REMOTE_CERT_CONTEXT
0x53
O parâmetro pBuffer contém um ponteiro para uma estrutura PCCERT_CONTEXT.
Localiza um contexto de certificado que contém o certificado final fornecido pelo servidor.
Esse atributo só tem suporte no pacote de segurança do Schannel.
SECPKG_ATTR_ROOT_STORE
0x55
O parâmetro pBuffer contém um ponteiro para um HCERTCONTEXT. Localiza um contexto de certificado que contém um certificado fornecido pelo repositório Raiz.
SECPKG_ATTR_SESSION_INFO
0x5d
O parâmetro pBuffer contém um ponteiro para uma estrutura de SecPkgContext_SessionInfo .
Retorna informações sobre a sessão.
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse valor.
SECPKG_ATTR_SESSION_KEY
9
O parâmetro pBuffer contém um ponteiro para uma estrutura de SecPkgContext_SessionKey .
Retorna informações sobre as chaves de sessão.
SECPKG_ATTR_SIZES
0
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_Sizes .
Consulta os tamanhos das estruturas usadas nas funções por mensagem.
SECPKG_ATTR_STREAM_SIZES
4
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_StreamSizes .
Consulta os tamanhos das várias partes de um fluxo usado nas funções por mensagem.
SECPKG_ATTR_SUPPORTED_SIGNATURES
0x66
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_SupportedSignatures .
Esse valor retorna informações sobre os tipos de assinatura com suporte para a conexão.
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse valor.
SECPKG_ATTR_TARGET_INFORMATION
17
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_TargetInformation .
Retorna informações sobre o nome do servidor remoto.
SECPKG_ATTR_UNIQUE_BINDINGS
25
O parâmetro pBuffer contém um ponteiro para uma estrutura SecPkgContext_Bindings que contém informações de associação de canal.
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse valor.
SECPKG_ATTR_APPLICATION_PROTOCOL
35
O parâmetro pBuffer contém um protocolo de aplicativo negociado.
SECPKG_ATTR_DTLS_MTU
34
Define e recupera o valor mtu (unidade de transmissão máxima) para uso com DTLS. Se o DTLS não estiver habilitado em um contexto de segurança, esse atributo não terá suporte.
Os valores válidos estão entre 200 bytes e 64 quilobytes. O valor de MTU DTLS padrão no Schannel é 1096 bytes.

 

pBuffer [out]

Um ponteiro para uma estrutura que recebe os atributos. O tipo de estrutura apontada depende do valor especificado no parâmetro ulAttribute .

Valor retornado

Se a função for bem-sucedida, o valor retornado será SEC_E_OK.

Se a função falhar, o valor retornado será um código de erro diferente de zero.

Comentários

A estrutura apontada pelo parâmetro pBuffer varia dependendo do atributo que está sendo consultado. O chamador deve alocar a própria estrutura pBuffer , mas o SSP aloca qualquer memória necessária para manter membros de tamanho variável da estrutura pBuffer . Quando terminar de usar a memória alocada pelo SSP, libere-a chamando a função FreeContextBuffer .

Depois que o valor SECPKG_ATTR_REMOTE_CERT_CONTEXT ou SECPKG_ATTR_LOCAL_CERT_CONTEXT tiver sido lido, o membro hCertStore será definido como um identificador para um repositório de certificados que contém os certificados intermediários, se houver. Além disso, o aplicativo é responsável por chamar CertFreeCertificateContext para liberar a memória usada pelo contexto do certificado.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 8.1 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2012 R2 [somente aplicativos da área de trabalho]
Cabeçalho
Sspi.h (inclua Security.h)
Biblioteca
Secur32.lib
DLL
Secur32.dll
Nomes Unicode e ANSI
QueryContextAttributesW (Unicode) e QueryContextAttributesA (ANSI)

Confira também

Funções SSPI

CERT_CONTEXT

Freecontextbuffer

SecPkgContext_Authority

SecPkgContext_ConnectionInfo

SecPkgContext_DceInfo

SecPkgContext_IssuerListInfoEx

SecPkgContext_KeyInfo

SecPkgContext_Lifespan

SecPkgContext_Names

SecPkgContext_Sizes

SecPkgContext_StreamSizes