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 |
|
Biblioteca |
|
DLL |
|
Nomes Unicode e ANSI |
QueryContextAttributesW (Unicode) e QueryContextAttributesA (ANSI) |
Confira também