HttpWaitForDemandStart 함수(http.h)
HttpWaitForDemandStart 함수는 새 요청 큐 프로세스에서 처리할 수 있는 새 요청이 도착할 때까지 기다립니다.
구문
HTTPAPI_LINKAGE ULONG HttpWaitForDemandStart(
[in] HANDLE RequestQueueHandle,
[in, optional] LPOVERLAPPED Overlapped
);
매개 변수
[in] RequestQueueHandle
요청 시작이 등록된 요청 큐에 대한 핸들입니다. 요청 큐가 생성되고 HttpCreateRequestQueue 함수에 대한 호출에서 해당 핸들이 반환됩니다.
[in, optional] Overlapped
비동기 호출의 경우 pOverlapped 를 OVERLAPPED 구조를 가리키도록 설정합니다. 동기 호출의 경우 NULL로 설정합니다.
동기 호출은 요청이 지정된 큐에 도착할 때까지 차단되는 반면, 비동기 호출은 즉시 ERROR_IO_PENDING 반환하고 호출 애플리케이션은 GetOverlappedResult 또는 I/O 완료 포트를 사용하여 작업이 완료되는 시기를 결정합니다. 동기화에 OVERLAPPED 구조를 사용하는 방법에 대한 자세한 내용은
동기화 및 겹치는 입력 및 출력.
반환 값
함수가 성공하면 NO_ERROR 반환합니다.
함수가 실패하면 다음 오류 코드 중 하나를 반환합니다.
값 | 의미 |
---|---|
|
ReqQueueHandle 매개 변수에 유효한 요청 큐가 없습니다. |
|
호출 프로세스는 이 요청 큐에 대한 컨트롤러 프로세스가 아닙니다. |
|
호출 프로세스가 이미 요청 큐에서 종료를 시작했거나 요청 큐 핸들을 닫았습니다. |
|
요청 큐에 대한 요청 시작 등록이 이미 있습니다. |
설명
컨트롤러 프로세스만 HttpWaitForDemandStart 를 호출하여 수요 시작 알림을 등록할 수 있습니다. 컨트롤러 프로세스는 요청 큐를 만들고 HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER 플래그를 전달하여 컨트롤러 프로세스임을 나타내는 프로세스입니다. 제어 프로세스 이외의 프로세스가 HttpWaitForDemandStart를 호출하는 경우 HTTP 서버 API는 ERROR_INVALID_ID_AUTHORITY 반환합니다.
HttpWaitForDemandStart 는 지정된 요청 큐에 대한 새 요청이 도착하면 완료됩니다. 현재 컨트롤러 프로세스는 이 API를 사용하여 서버 보류 중인 요청에 대한 새 작업자 프로세스를 시작할 수 있습니다. 작업자 프로세스의 시작이 지연되면 애플리케이션이 필요할 때까지 리소스를 사용하지 않도록 할 수 있습니다.
HTTP 서버 API는 언제든지 요청 큐에 등록된 하나의 미해결 알림만 허용합니다. HTTP 서버 API는 동일한 요청 큐에서 HttpWaitForDemandStart 를 연속으로 호출할 수 있는 횟수에 제한을 적용하지 않습니다. 동일한 요청 큐에서 작업하는 미해결 프로세스 수에는 제한이 없습니다.
HTTP 서버 API는 비동기 HttpWaitForDemandStart 호출 취소를 지원합니다. 애플리케이션은 pOverlapped 매개 변수에 제공된 겹치는 구조와 함께 CancelIoEx를 사용하여 미해결 HttpWaitForDemandStart 호출을 취소할 수 있습니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | http.h |
라이브러리 | Httpapi.lib |
DLL | Httpapi.dll |