kernel32: Implement GetQueuedCompletionStatusEx().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43878 Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
a2c11943c8
commit
b79fd400c0
|
@ -3,5 +3,5 @@
|
|||
@ stdcall DeviceIoControl(long long ptr long ptr long ptr ptr) kernel32.DeviceIoControl
|
||||
@ stdcall GetOverlappedResult(long ptr ptr long) kernel32.GetOverlappedResult
|
||||
@ stdcall GetQueuedCompletionStatus(long ptr ptr ptr long) kernel32.GetQueuedCompletionStatus
|
||||
@ stub GetQueuedCompletionStatusEx
|
||||
@ stdcall GetQueuedCompletionStatusEx(ptr ptr long ptr long long) kernel32.GetQueuedCompletionStatusEx
|
||||
@ stdcall PostQueuedCompletionStatus(long long ptr ptr) kernel32.PostQueuedCompletionStatus
|
||||
|
|
|
@ -6,5 +6,5 @@
|
|||
@ stdcall GetOverlappedResult(long ptr ptr long) kernel32.GetOverlappedResult
|
||||
@ stub GetOverlappedResultEx
|
||||
@ stdcall GetQueuedCompletionStatus(long ptr ptr ptr long) kernel32.GetQueuedCompletionStatus
|
||||
@ stub GetQueuedCompletionStatusEx
|
||||
@ stdcall GetQueuedCompletionStatusEx(ptr ptr long ptr long long) kernel32.GetQueuedCompletionStatusEx
|
||||
@ stdcall PostQueuedCompletionStatus(long long ptr ptr) kernel32.PostQueuedCompletionStatus
|
||||
|
|
|
@ -804,7 +804,7 @@
|
|||
@ stdcall GetProfileStringA(str str str ptr long)
|
||||
@ stdcall GetProfileStringW(wstr wstr wstr ptr long)
|
||||
@ stdcall GetQueuedCompletionStatus(long ptr ptr ptr long)
|
||||
# @ stub GetQueuedCompletionStatusEx
|
||||
@ stdcall GetQueuedCompletionStatusEx(ptr ptr long ptr long long)
|
||||
@ stub -i386 GetSLCallbackTarget
|
||||
@ stub -i386 GetSLCallbackTemplate
|
||||
@ stdcall GetShortPathNameA(str ptr long)
|
||||
|
|
|
@ -2377,6 +2377,25 @@ BOOL WINAPI GetQueuedCompletionStatus( HANDLE CompletionPort, LPDWORD lpNumberOf
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* GetQueuedCompletionStatusEx (KERNEL32.@)
|
||||
*/
|
||||
BOOL WINAPI GetQueuedCompletionStatusEx( HANDLE port, OVERLAPPED_ENTRY *entries, ULONG count,
|
||||
ULONG *written, DWORD timeout, BOOL alertable )
|
||||
{
|
||||
LARGE_INTEGER time;
|
||||
NTSTATUS ret;
|
||||
|
||||
TRACE("%p %p %u %p %u %u\n", port, entries, count, written, timeout, alertable);
|
||||
|
||||
ret = NtRemoveIoCompletionEx( port, (FILE_IO_COMPLETION_INFORMATION *)entries, count,
|
||||
written, get_nt_timeout( &time, timeout ), alertable );
|
||||
if (ret == STATUS_SUCCESS) return TRUE;
|
||||
else if (ret == STATUS_TIMEOUT) SetLastError( WAIT_TIMEOUT );
|
||||
else if (ret == STATUS_USER_APC) SetLastError( WAIT_IO_COMPLETION );
|
||||
else SetLastError( RtlNtStatusToDosError(ret) );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* PostQueuedCompletionStatus (KERNEL32.@)
|
||||
|
|
|
@ -645,7 +645,7 @@
|
|||
# @ stub GetPublisherCacheFolder
|
||||
# @ stub GetPublisherRootFolder
|
||||
@ stdcall GetQueuedCompletionStatus(long ptr ptr ptr long) kernel32.GetQueuedCompletionStatus
|
||||
@ stub GetQueuedCompletionStatusEx
|
||||
@ stdcall GetQueuedCompletionStatusEx(ptr ptr long ptr long long) kernel32.GetQueuedCompletionStatusEx
|
||||
# @ stub GetRegistryExtensionFlags
|
||||
# @ stub GetRoamingLastObservedChangeTime
|
||||
@ stdcall GetSecurityDescriptorControl(ptr ptr ptr) advapi32.GetSecurityDescriptorControl
|
||||
|
|
|
@ -2205,6 +2205,7 @@ WINBASEAPI INT WINAPI GetProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT)
|
|||
WINBASEAPI INT WINAPI GetProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT);
|
||||
#define GetProfileString WINELIB_NAME_AW(GetProfileString)
|
||||
WINBASEAPI BOOL WINAPI GetQueuedCompletionStatus(HANDLE,LPDWORD,PULONG_PTR,LPOVERLAPPED*,DWORD);
|
||||
WINBASEAPI BOOL WINAPI GetQueuedCompletionStatusEx(HANDLE,OVERLAPPED_ENTRY*,ULONG,ULONG*,DWORD,BOOL);
|
||||
WINADVAPI BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,LPDWORD);
|
||||
WINADVAPI BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL *,LPBOOL);
|
||||
WINADVAPI BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID *,LPBOOL);
|
||||
|
|
Loading…
Reference in New Issue