Função WinHttpReadDataEx (winhttp.h)
Lê dados de um identificador aberto pela função WinHttpOpenRequest .
Sintaxe
WINHTTPAPI DWORD WinHttpReadDataEx(
HINTERNET hRequest,
LPVOID lpBuffer,
DWORD dwNumberOfBytesToRead,
LPDWORD lpdwNumberOfBytesRead,
ULONGLONG ullFlags,
DWORD cbProperty,
PVOID pvProperty
);
Parâmetros
hRequest
Tipo: IN HINTERNET
Um identificador HINTERNET retornado de uma chamada anterior para WinHttpOpenRequest.
WinHttpReceiveResponse ou WinHttpQueryDataAvailable deve ter sido chamado para esse identificador e deve ter sido concluído antes que WinHttpReadDataEx seja chamado. Embora chamar WinHttpReadDataEx imediatamente após a conclusão de WinHttpReceiveResponse evite a despesa de uma cópia de buffer, isso exige que seu aplicativo use um buffer de comprimento fixo para leitura.
lpBuffer
Tipo: _Out_writes_bytes_to_(dwNumberOfBytesToRead, *lpdwNumberOfBytesRead) __out_data_source(NETWORK) LPVOID
Ponteiro para um buffer que recebe os dados lidos. Verifique se esse buffer permanece válido até que WinHttpReadDataEx seja concluído.
dwNumberOfBytesToRead
Tipo: IN DWORD
Valor inteiro longo sem sinal que contém o número de bytes a serem lidos.
lpdwNumberOfBytesRead
Tipo: OUT LPDWORD
Ponteiro para uma variável de inteiro longo sem sinal que recebe o número de bytes lidos. WinHttpReadDataEx define esse valor como zero antes de fazer qualquer verificação de erro ou trabalho. Ao usar WinHTTP de forma assíncrona, sempre defina esse parâmetro como NULL e recupere as informações na função de retorno de chamada; não fazer isso pode causar uma falha de memória.
ullFlags
Tipo: IN ULONGLONG
Se você passar WINHTTP_READ_DATA_EX_FLAG_FILL_BUFFER, o WinHttp não concluirá a chamada para WinHttpReadDataEx até que o buffer de dados fornecido seja preenchido ou a resposta seja concluída. Passar esse sinalizador torna o comportamento dessa API equivalente ao de WinHttpReadData.
cbProperty
Tipo: IN DWORD
Reservado. Passe 0.
pvProperty
Tipo: _In_reads_bytes_opt_(cbProperty) PVOID
Reservado. Passe NULL.
Valor retornado
Um código status que indica o resultado da operação. Entre os códigos de erro retornados estão os seguintes.
Código do Erro | Descrição |
---|---|
|
A conexão com o servidor foi redefinida ou encerrada ou um protocolo SSL incompatível foi encontrado. Por exemplo, o WinHTTP 5.1 não dá suporte ao SSL2, a menos que o cliente o habilite especificamente. |
|
A operação solicitada não pode ser executada porque o identificador fornecido não está no estado correto. |
|
O tipo de identificador fornecido está incorreto para esta operação. |
|
Ocorreu um erro interno. |
|
A operação foi cancelada, geralmente porque o identificador no qual a solicitação estava operando foi fechado antes da conclusão da operação. |
|
Retornado quando uma resposta de entrada excede um limite interno de tamanho WinHTTP. |
|
O tempo limite da solicitação foi atingido. |
|
Não havia memória suficiente disponível para concluir a operação solicitada. (Código de erro do Windows) |
Comentários
Por padrão, WinHttpReadDataEx retorna após qualquer quantidade de dados ter sido gravada no buffer fornecido (a função nem sempre preencherá completamente o buffer fornecido).
Requisitos
Cliente mínimo com suporte | Windows 10 Build 20348 |
Servidor mínimo com suporte | Windows 10 Build 20348 |
Plataforma de Destino | Windows |
Cabeçalho | winhttp.h |
Biblioteca | Winhttp.lib |
DLL | Winhttp.dll |