CompletionKey parameter for functions CreateIoCompletionPort,
GetQueuedCompletionStatus must be 64bit size on amd64 and 32bit size on x86.
This commit is contained in:
parent
d7e8b89eb8
commit
2a2a3d6c39
2 changed files with 6 additions and 4 deletions
|
|
@ -368,7 +368,7 @@ proc processTimers(p: PDispatcherBase) =
|
||||||
when defined(windows) or defined(nimdoc):
|
when defined(windows) or defined(nimdoc):
|
||||||
import winlean, sets, hashes
|
import winlean, sets, hashes
|
||||||
type
|
type
|
||||||
CompletionKey = Dword
|
CompletionKey = ULONG_PTR
|
||||||
|
|
||||||
CompletionData* = object
|
CompletionData* = object
|
||||||
fd*: AsyncFD # TODO: Rename this.
|
fd*: AsyncFD # TODO: Rename this.
|
||||||
|
|
@ -431,7 +431,7 @@ when defined(windows) or defined(nimdoc):
|
||||||
if timeout == -1: winlean.INFINITE
|
if timeout == -1: winlean.INFINITE
|
||||||
else: timeout.int32
|
else: timeout.int32
|
||||||
var lpNumberOfBytesTransferred: Dword
|
var lpNumberOfBytesTransferred: Dword
|
||||||
var lpCompletionKey: ULONG
|
var lpCompletionKey: ULONG_PTR
|
||||||
var customOverlapped: PCustomOverlapped
|
var customOverlapped: PCustomOverlapped
|
||||||
let res = getQueuedCompletionStatus(p.ioPort,
|
let res = getQueuedCompletionStatus(p.ioPort,
|
||||||
addr lpNumberOfBytesTransferred, addr lpCompletionKey,
|
addr lpNumberOfBytesTransferred, addr lpCompletionKey,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,8 @@ type
|
||||||
DWORD* = int32
|
DWORD* = int32
|
||||||
PDWORD* = ptr DWORD
|
PDWORD* = ptr DWORD
|
||||||
LPINT* = ptr int32
|
LPINT* = ptr int32
|
||||||
|
ULONG_PTR* = uint
|
||||||
|
PULONG_PTR* = ptr uint
|
||||||
HDC* = Handle
|
HDC* = Handle
|
||||||
HGLRC* = Handle
|
HGLRC* = Handle
|
||||||
|
|
||||||
|
|
@ -759,12 +761,12 @@ const
|
||||||
ERROR_NETNAME_DELETED* = 64
|
ERROR_NETNAME_DELETED* = 64
|
||||||
|
|
||||||
proc createIoCompletionPort*(FileHandle: Handle, ExistingCompletionPort: Handle,
|
proc createIoCompletionPort*(FileHandle: Handle, ExistingCompletionPort: Handle,
|
||||||
CompletionKey: DWORD,
|
CompletionKey: ULONG_PTR,
|
||||||
NumberOfConcurrentThreads: DWORD): Handle{.stdcall,
|
NumberOfConcurrentThreads: DWORD): Handle{.stdcall,
|
||||||
dynlib: "kernel32", importc: "CreateIoCompletionPort".}
|
dynlib: "kernel32", importc: "CreateIoCompletionPort".}
|
||||||
|
|
||||||
proc getQueuedCompletionStatus*(CompletionPort: Handle,
|
proc getQueuedCompletionStatus*(CompletionPort: Handle,
|
||||||
lpNumberOfBytesTransferred: PDWORD, lpCompletionKey: PULONG,
|
lpNumberOfBytesTransferred: PDWORD, lpCompletionKey: PULONG_PTR,
|
||||||
lpOverlapped: ptr POVERLAPPED,
|
lpOverlapped: ptr POVERLAPPED,
|
||||||
dwMilliseconds: DWORD): WINBOOL{.stdcall,
|
dwMilliseconds: DWORD): WINBOOL{.stdcall,
|
||||||
dynlib: "kernel32", importc: "GetQueuedCompletionStatus".}
|
dynlib: "kernel32", importc: "GetQueuedCompletionStatus".}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue