From 3df66a632a8fae75511b4c96219dd3801f04c737 Mon Sep 17 00:00:00 2001 From: Kouhei Sutou Date: Sat, 11 Oct 2014 20:56:35 +0900 Subject: [PATCH] Win32: fixed wrong type cast. GetQueuedCompletionStatus() document on MSDN says the following signature: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364986.aspx BOOL WINAPI GetQueuedCompletionStatus( _In_ HANDLE CompletionPort, _Out_ LPDWORD lpNumberOfBytes, _Out_ PULONG_PTR lpCompletionKey, _Out_ LPOVERLAPPED *lpOverlapped, _In_ DWORD dwMilliseconds ); In the latest specification, the type of the third argument (lpCompletionKey) is PULONG_PTR not LPDWORD. --- src/event/modules/ngx_iocp_module.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/event/modules/ngx_iocp_module.c b/src/event/modules/ngx_iocp_module.c index 787e22d80..75c5a517b 100644 --- a/src/event/modules/ngx_iocp_module.c +++ b/src/event/modules/ngx_iocp_module.c @@ -247,7 +247,7 @@ ngx_int_t ngx_iocp_process_events(ngx_cycle_t *cycle, ngx_msec_t timer, ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "iocp timer: %M", timer); - rc = GetQueuedCompletionStatus(iocp, &bytes, (LPDWORD) &key, + rc = GetQueuedCompletionStatus(iocp, &bytes, (PULONG_PTR) &key, (LPOVERLAPPED *) &ovlp, (u_long) timer); if (rc == 0) {