Function WSAIoctl [src]

Prototype

pub fn WSAIoctl( s: ws2_32.SOCKET, dwIoControlCode: DWORD, inBuffer: ?[]const u8, outBuffer: []u8, overlapped: ?*OVERLAPPED, completionRoutine: ?ws2_32.LPWSAOVERLAPPED_COMPLETION_ROUTINE, ) !DWORD

Parameters

s: ws2_32.SOCKETdwIoControlCode: DWORDinBuffer: ?[]const u8outBuffer: []u8overlapped: ?*OVERLAPPEDcompletionRoutine: ?ws2_32.LPWSAOVERLAPPED_COMPLETION_ROUTINE

Source

pub fn WSAIoctl( s: ws2_32.SOCKET, dwIoControlCode: DWORD, inBuffer: ?[]const u8, outBuffer: []u8, overlapped: ?*OVERLAPPED, completionRoutine: ?ws2_32.LPWSAOVERLAPPED_COMPLETION_ROUTINE, ) !DWORD { var bytes: DWORD = undefined; switch (ws2_32.WSAIoctl( s, dwIoControlCode, if (inBuffer) |i| i.ptr else null, if (inBuffer) |i| @as(DWORD, @intCast(i.len)) else 0, outBuffer.ptr, @as(DWORD, @intCast(outBuffer.len)), &bytes, overlapped, completionRoutine, )) { 0 => {}, ws2_32.SOCKET_ERROR => switch (ws2_32.WSAGetLastError()) { else => |err| return unexpectedWSAError(err), }, else => unreachable, } return bytes; }