Función WinHttpReadDataEx (winhttp.h)
Lee los datos de un identificador abierto por la función WinHttpOpenRequest .
Sintaxis
WINHTTPAPI DWORD WinHttpReadDataEx(
HINTERNET hRequest,
LPVOID lpBuffer,
DWORD dwNumberOfBytesToRead,
LPDWORD lpdwNumberOfBytesRead,
ULONGLONG ullFlags,
DWORD cbProperty,
PVOID pvProperty
);
Parámetros
hRequest
Tipo: IN HINTERNET
Un identificador HINTERNET devuelto de una llamada anterior a WinHttpOpenRequest.
Se debe haber llamado a WinHttpReceiveResponse o WinHttpQueryDataAvailable para este identificador y debe haberse completado antes de llamar a WinHttpReadDataEx. Aunque llamar a WinHttpReadDataEx inmediatamente después de la finalización de WinHttpReceiveResponse evita el gasto de una copia de búfer, esto requiere que la aplicación use un búfer de longitud fija para la lectura.
lpBuffer
Tipo: _Out_writes_bytes_to_(dwNumberOfBytesToRead, *lpdwNumberOfBytesRead) __out_data_source(NETWORK) LPVOID
Puntero a un búfer que recibe los datos leídos. Asegúrese de que este búfer sigue siendo válido hasta que WinHttpReadDataEx se haya completado.
dwNumberOfBytesToRead
Tipo: EN DWORD
Valor entero largo sin signo que contiene el número de bytes que se van a leer.
lpdwNumberOfBytesRead
Tipo: OUT LPDWORD
Puntero a una variable de entero largo sin signo que recibe el número de bytes leídos. WinHttpReadDataEx establece este valor en cero antes de realizar cualquier comprobación de errores o trabajo. Cuando se usa WinHTTP de forma asincrónica, establezca siempre este parámetro en NULL y recupere la información de la función de devolución de llamada; no hacerlo puede provocar un error de memoria.
ullFlags
Tipo: IN ULONGLONG
Si pasa WINHTTP_READ_DATA_EX_FLAG_FILL_BUFFER, WinHttp no completará la llamada a WinHttpReadDataEx hasta que se haya rellenado el búfer de datos proporcionado o se complete la respuesta. Pasar esta marca hace que el comportamiento de esta API sea equivalente al de WinHttpReadData.
cbProperty
Tipo: EN DWORD
Reservado. Pase 0.
pvProperty
Tipo: _In_reads_bytes_opt_(cbProperty) PVOID
Reservado. Pase NULL.
Valor devuelto
Código de estado que indica el resultado de la operación. Entre los códigos de error devueltos se incluyen los siguientes.
Código de error | Descripción |
---|---|
|
Se ha restablecido o finalizado la conexión con el servidor, o se encontró un protocolo SSL incompatible. Por ejemplo, WinHTTP 5.1 no admite SSL2 a menos que el cliente lo habilite específicamente. |
|
No se puede llevar a cabo la operación solicitada porque el identificador proporcionado no está en el estado correcto. |
|
El tipo de identificador proporcionado es incorrecto para esta operación. |
|
Se ha producido un error interno. |
|
La operación se canceló, normalmente porque el identificador en el que estaba funcionando la solicitud se cerró antes de que se completara la operación. |
|
Se devuelve cuando una respuesta entrante supera un límite interno de tamaño winHTTP. |
|
La solicitud ha agotado el tiempo de espera. |
|
No había suficiente memoria disponible para completar la operación solicitada. (Código de error de Windows) |
Comentarios
De forma predeterminada, WinHttpReadDataEx devuelve después de que se haya escrito cualquier cantidad de datos en el búfer que proporcione (la función no siempre rellenará completamente el búfer que proporcione).
Requisitos
Cliente mínimo compatible | Compilación 20348 de Windows 10 |
Servidor mínimo compatible | Compilación 20348 de Windows 10 |
Plataforma de destino | Windows |
Encabezado | winhttp.h |
Library | Winhttp.lib |
Archivo DLL | Winhttp.dll |