WinHttpReadDataEx 함수(winhttp.h)
WinHttpOpenRequest 함수에서 연 핸들에서 데이터를 읽습니다.
구문
WINHTTPAPI DWORD WinHttpReadDataEx(
HINTERNET hRequest,
LPVOID lpBuffer,
DWORD dwNumberOfBytesToRead,
LPDWORD lpdwNumberOfBytesRead,
ULONGLONG ullFlags,
DWORD cbProperty,
PVOID pvProperty
);
매개 변수
hRequest
형식: IN HINTERNET
WinHttpOpenRequest에 대한 이전 호출에서 반환된 HINTERNET 핸들입니다.
WinHttpReceiveResponse 또는 WinHttpQueryDataAvailable 은 이 핸들에 대해 호출되어야 하며 WinHttpReadDataEx 가 호출되기 전에 완료되어야 합니다. WinHttpReceiveResponse가 완료된 직후 WinHttpReadDataEx를 호출하면 버퍼 복사 비용이 발생하지 않지만 이렇게 하려면 애플리케이션에서 읽기에 고정 길이 버퍼를 사용해야 합니다.
lpBuffer
형식: _Out_writes_bytes_to_(dwNumberOfBytesToRead, *lpdwNumberOfBytesRead) __out_data_source(NETWORK) LPVOID
데이터를 읽은 버퍼에 대한 포인터입니다. WinHttpReadDataEx가 완료될 때까지 이 버퍼가 유효한지 확인합니다.
dwNumberOfBytesToRead
형식: IN DWORD
읽을 바이트 수를 포함하는 부호 없는 long 정수 값입니다.
lpdwNumberOfBytesRead
형식: OUT LPDWORD
읽은 바이트 수를 수신하는 부호 없는 long 정수 변수에 대한 포인터입니다. WinHttpReadDataEx 는 작업 또는 오류 검사를 수행하기 전에 이 값을 0으로 설정합니다. WinHTTP를 비동기적으로 사용하는 경우 항상 이 매개 변수를 NULL 로 설정하고 콜백 함수에서 정보를 검색합니다. 이렇게 하지 않을 경우 메모리 오류가 발생할 수 있습니다.
ullFlags
형식: IN ULONGLONG
WINHTTP_READ_DATA_EX_FLAG_FILL_BUFFER 전달하면 제공된 데이터 버퍼가 채워지거나 응답이 완료될 때까지 WinHttp에서 WinHttpReadDataEx 호출을 완료하지 않습니다. 이 플래그를 전달하면 이 API의 동작이 WinHttpReadData와 동일합니다.
cbProperty
형식: IN DWORD
예약되어 있습니다. 0을 전달합니다.
pvProperty
형식: _In_reads_bytes_opt_(cbProperty) PVOID
예약되어 있습니다. NULL을 전달합니다.
반환 값
작업의 결과를 나타내는 상태 코드입니다. 반환된 오류 코드 중에는 다음과 같습니다.
오류 코드 | Description |
---|---|
|
서버와의 연결이 다시 설정되거나 종료되었거나 호환되지 않는 SSL 프로토콜이 발견되었습니다. 예를 들어 WinHTTP 5.1은 클라이언트가 특별히 사용하도록 설정하지 않는 한 SSL2를 지원하지 않습니다. |
|
제공된 핸들이 올바른 상태가 아니므로 요청된 작업을 수행할 수 없습니다. |
|
이 작업에 대해 제공된 핸들의 형식이 올바르지 않습니다. |
|
내부 오류가 발생했습니다. |
|
작업이 완료되기 전에 요청이 작동 중인 핸들이 닫혔기 때문에 작업이 취소되었습니다. |
|
들어오는 응답이 내부 WinHTTP 크기 제한을 초과할 때 반환됩니다. |
|
요청 시간이 초과되었습니다. |
|
메모리가 부족하여 요청된 작업을 완료할 수 없습니다. (Windows 오류 코드) |
설명
기본적으로 WinHttpReadDataEx 는 사용자가 제공하는 버퍼에 데이터의 양이 기록된 후 를 반환합니다(함수가 제공하는 버퍼를 항상 완전히 채우지는 않음).
요구 사항
지원되는 최소 클라이언트 | Windows 10 빌드 20348 |
지원되는 최소 서버 | Windows 10 빌드 20348 |
대상 플랫폼 | Windows |
헤더 | winhttp.h |
라이브러리 | Winhttp.lib |
DLL | Winhttp.dll |