Funzione WinHttpReadDataEx (winhttp.h)
Legge i dati da un handle aperto dalla funzione WinHttpOpenRequest .
Sintassi
WINHTTPAPI DWORD WinHttpReadDataEx(
HINTERNET hRequest,
LPVOID lpBuffer,
DWORD dwNumberOfBytesToRead,
LPDWORD lpdwNumberOfBytesRead,
ULONGLONG ullFlags,
DWORD cbProperty,
PVOID pvProperty
);
Parametri
hRequest
Tipo: IN HINTERNET
Handle HINTERNET restituito da una chiamata precedente a WinHttpOpenRequest.
WinHttpReceiveResponse o WinHttpQueryDataAvailable deve essere stato chiamato per questo handle e deve essere stato completato prima di chiamare WinHttpReadDataEx . Anche se la chiamata a WinHttpReadDataEx immediatamente dopo il completamento di WinHttpReceiveResponse evita la spesa di una copia del buffer, in questo modo è necessario che l'applicazione usi un buffer a lunghezza fissa per la lettura.
lpBuffer
Tipo: _Out_writes_bytes_to_(dwNumberOfBytesToRead, *lpdwNumberOfBytesRead) __out_data_source(NETWORK) LPVOID
Puntatore a un buffer che riceve i dati letti. Assicurarsi che questo buffer rimanga valido fino al completamento di WinHttpReadDataEx .
dwNumberOfBytesToRead
Tipo: IN DWORD
Valore intero lungo senza segno che contiene il numero di byte da leggere.
lpdwNumberOfBytesRead
Tipo: OUT LPDWORD
Puntatore a una variabile integer long senza segno che riceve il numero di byte letti. WinHttpReadDataEx imposta questo valore su zero prima di eseguire qualsiasi controllo di lavoro o errore. Quando si usa WinHTTP in modo asincrono, impostare sempre questo parametro su NULL e recuperare le informazioni nella funzione di callback; non in questo modo può causare un errore di memoria.
ullFlags
Tipo: IN ULONGLONG
Se si passa WINHTTP_READ_DATA_EX_FLAG_FILL_BUFFER, WinHttp non completa la chiamata a WinHttpReadDataEx finché il buffer dati specificato non è stato compilato o la risposta è stata completata. Il passaggio di questo flag rende il comportamento di questa API equivalente a quello di WinHttpReadData.
cbProperty
Tipo: IN DWORD
Riservato. Passare 0.
pvProperty
Tipo: _In_reads_bytes_opt_(cbProperty) PVOID
Riservato. Passare NULL.
Valore restituito
Codice di stato che indica il risultato dell'operazione. Tra i codici di errore restituiti sono i seguenti.
Codice di errore | Descrizione |
---|---|
|
La connessione al server è stata reimpostata o terminata o è stato rilevato un protocollo SSL non compatibile. Ad esempio, WinHTTP 5.1 non supporta SSL2 a meno che il client non lo abilita in modo specifico. |
|
Impossibile eseguire l'operazione richiesta perché l'handle fornito non è nello stato corretto. |
|
Il tipo di handle fornito non è corretto per questa operazione. |
|
Si è verificato un errore interno. |
|
L'operazione è stata annullata, in genere perché l'handle in cui è stata eseguita la richiesta è stata chiusa prima del completamento dell'operazione. |
|
Restituito quando una risposta in ingresso supera un limite di dimensioni WinHTTP interno. |
|
Timeout della richiesta. |
|
Memoria insufficiente per completare l'operazione richiesta. (Codice errore di Windows) |
Commenti
Per impostazione predefinita, WinHttpReadDataEx restituisce dopo la scrittura di qualsiasi quantità di dati nel buffer fornito( la funzione non riempirà sempre completamente il buffer fornito).
Requisiti
Client minimo supportato | Windows 10 Build 20348 |
Server minimo supportato | Windows 10 Build 20348 |
Piattaforma di destinazione | Windows |
Intestazione | winhttp.h |
Libreria | Winhttp.lib |
DLL | Winhttp.dll |