296 lines
12 KiB
Zig
296 lines
12 KiB
Zig
//! NOTE: this file is autogenerated, DO NOT MODIFY
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Constants (4)
|
|
//--------------------------------------------------------------------------------
|
|
pub const PIPE_UNLIMITED_INSTANCES = @as(u32, 255);
|
|
pub const NMPWAIT_WAIT_FOREVER = @as(u32, 4294967295);
|
|
pub const NMPWAIT_NOWAIT = @as(u32, 1);
|
|
pub const NMPWAIT_USE_DEFAULT_WAIT = @as(u32, 0);
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Types (1)
|
|
//--------------------------------------------------------------------------------
|
|
pub const NAMED_PIPE_MODE = enum(u32) {
|
|
WAIT = 0,
|
|
NOWAIT = 1,
|
|
// READMODE_BYTE = 0, this enum value conflicts with WAIT
|
|
READMODE_MESSAGE = 2,
|
|
// CLIENT_END = 0, this enum value conflicts with WAIT
|
|
// SERVER_END = 1, this enum value conflicts with NOWAIT
|
|
// TYPE_BYTE = 0, this enum value conflicts with WAIT
|
|
TYPE_MESSAGE = 4,
|
|
// ACCEPT_REMOTE_CLIENTS = 0, this enum value conflicts with WAIT
|
|
REJECT_REMOTE_CLIENTS = 8,
|
|
_,
|
|
pub fn initFlags(o: struct {
|
|
WAIT: u1 = 0,
|
|
NOWAIT: u1 = 0,
|
|
READMODE_MESSAGE: u1 = 0,
|
|
TYPE_MESSAGE: u1 = 0,
|
|
REJECT_REMOTE_CLIENTS: u1 = 0,
|
|
}) NAMED_PIPE_MODE {
|
|
return @as(NAMED_PIPE_MODE, @enumFromInt(
|
|
(if (o.WAIT == 1) @intFromEnum(NAMED_PIPE_MODE.WAIT) else 0)
|
|
| (if (o.NOWAIT == 1) @intFromEnum(NAMED_PIPE_MODE.NOWAIT) else 0)
|
|
| (if (o.READMODE_MESSAGE == 1) @intFromEnum(NAMED_PIPE_MODE.READMODE_MESSAGE) else 0)
|
|
| (if (o.TYPE_MESSAGE == 1) @intFromEnum(NAMED_PIPE_MODE.TYPE_MESSAGE) else 0)
|
|
| (if (o.REJECT_REMOTE_CLIENTS == 1) @intFromEnum(NAMED_PIPE_MODE.REJECT_REMOTE_CLIENTS) else 0)
|
|
));
|
|
}
|
|
};
|
|
pub const PIPE_WAIT = NAMED_PIPE_MODE.WAIT;
|
|
pub const PIPE_NOWAIT = NAMED_PIPE_MODE.NOWAIT;
|
|
pub const PIPE_READMODE_BYTE = NAMED_PIPE_MODE.WAIT;
|
|
pub const PIPE_READMODE_MESSAGE = NAMED_PIPE_MODE.READMODE_MESSAGE;
|
|
pub const PIPE_CLIENT_END = NAMED_PIPE_MODE.WAIT;
|
|
pub const PIPE_SERVER_END = NAMED_PIPE_MODE.NOWAIT;
|
|
pub const PIPE_TYPE_BYTE = NAMED_PIPE_MODE.WAIT;
|
|
pub const PIPE_TYPE_MESSAGE = NAMED_PIPE_MODE.TYPE_MESSAGE;
|
|
pub const PIPE_ACCEPT_REMOTE_CLIENTS = NAMED_PIPE_MODE.WAIT;
|
|
pub const PIPE_REJECT_REMOTE_CLIENTS = NAMED_PIPE_MODE.REJECT_REMOTE_CLIENTS;
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Functions (22)
|
|
//--------------------------------------------------------------------------------
|
|
// TODO: this type is limited to platform 'windows5.0'
|
|
pub extern "kernel32" fn CreatePipe(
|
|
hReadPipe: ?*?HANDLE,
|
|
hWritePipe: ?*?HANDLE,
|
|
lpPipeAttributes: ?*SECURITY_ATTRIBUTES,
|
|
nSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.0'
|
|
pub extern "kernel32" fn ConnectNamedPipe(
|
|
hNamedPipe: ?HANDLE,
|
|
lpOverlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.0'
|
|
pub extern "kernel32" fn DisconnectNamedPipe(
|
|
hNamedPipe: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.0'
|
|
pub extern "kernel32" fn SetNamedPipeHandleState(
|
|
hNamedPipe: ?HANDLE,
|
|
lpMode: ?*NAMED_PIPE_MODE,
|
|
lpMaxCollectionCount: ?*u32,
|
|
lpCollectDataTimeout: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.0'
|
|
pub extern "kernel32" fn PeekNamedPipe(
|
|
hNamedPipe: ?HANDLE,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
lpBuffer: ?*anyopaque,
|
|
nBufferSize: u32,
|
|
lpBytesRead: ?*u32,
|
|
lpTotalBytesAvail: ?*u32,
|
|
lpBytesLeftThisMessage: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.0'
|
|
pub extern "kernel32" fn TransactNamedPipe(
|
|
hNamedPipe: ?HANDLE,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
lpInBuffer: ?*anyopaque,
|
|
nInBufferSize: u32,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
lpOutBuffer: ?*anyopaque,
|
|
nOutBufferSize: u32,
|
|
lpBytesRead: ?*u32,
|
|
lpOverlapped: ?*OVERLAPPED,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn CreateNamedPipeW(
|
|
lpName: ?[*:0]const u16,
|
|
dwOpenMode: FILE_FLAGS_AND_ATTRIBUTES,
|
|
dwPipeMode: NAMED_PIPE_MODE,
|
|
nMaxInstances: u32,
|
|
nOutBufferSize: u32,
|
|
nInBufferSize: u32,
|
|
nDefaultTimeOut: u32,
|
|
lpSecurityAttributes: ?*SECURITY_ATTRIBUTES,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
pub extern "kernel32" fn WaitNamedPipeW(
|
|
lpNamedPipeName: ?[*:0]const u16,
|
|
nTimeOut: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn GetNamedPipeClientComputerNameW(
|
|
Pipe: ?HANDLE,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
ClientComputerName: ?PWSTR,
|
|
ClientComputerNameLength: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.1.2600'
|
|
pub extern "advapi32" fn ImpersonateNamedPipeClient(
|
|
hNamedPipe: ?HANDLE,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.0'
|
|
pub extern "kernel32" fn GetNamedPipeInfo(
|
|
hNamedPipe: ?HANDLE,
|
|
lpFlags: ?*NAMED_PIPE_MODE,
|
|
lpOutBufferSize: ?*u32,
|
|
lpInBufferSize: ?*u32,
|
|
lpMaxInstances: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn GetNamedPipeHandleStateW(
|
|
hNamedPipe: ?HANDLE,
|
|
lpState: ?*NAMED_PIPE_MODE,
|
|
lpCurInstances: ?*u32,
|
|
lpMaxCollectionCount: ?*u32,
|
|
lpCollectDataTimeout: ?*u32,
|
|
lpUserName: ?[*:0]u16,
|
|
nMaxUserNameSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
pub extern "kernel32" fn CallNamedPipeW(
|
|
lpNamedPipeName: ?[*:0]const u16,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
lpInBuffer: ?*anyopaque,
|
|
nInBufferSize: u32,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
lpOutBuffer: ?*anyopaque,
|
|
nOutBufferSize: u32,
|
|
lpBytesRead: ?*u32,
|
|
nTimeOut: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.0'
|
|
pub extern "kernel32" fn CreateNamedPipeA(
|
|
lpName: ?[*:0]const u8,
|
|
dwOpenMode: FILE_FLAGS_AND_ATTRIBUTES,
|
|
dwPipeMode: NAMED_PIPE_MODE,
|
|
nMaxInstances: u32,
|
|
nOutBufferSize: u32,
|
|
nInBufferSize: u32,
|
|
nDefaultTimeOut: u32,
|
|
lpSecurityAttributes: ?*SECURITY_ATTRIBUTES,
|
|
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;
|
|
|
|
// TODO: this type is limited to platform 'windows5.0'
|
|
pub extern "kernel32" fn GetNamedPipeHandleStateA(
|
|
hNamedPipe: ?HANDLE,
|
|
lpState: ?*NAMED_PIPE_MODE,
|
|
lpCurInstances: ?*u32,
|
|
lpMaxCollectionCount: ?*u32,
|
|
lpCollectDataTimeout: ?*u32,
|
|
lpUserName: ?[*:0]u8,
|
|
nMaxUserNameSize: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.0'
|
|
pub extern "kernel32" fn CallNamedPipeA(
|
|
lpNamedPipeName: ?[*:0]const u8,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
lpInBuffer: ?*anyopaque,
|
|
nInBufferSize: u32,
|
|
// TODO: what to do with BytesParamIndex 4?
|
|
lpOutBuffer: ?*anyopaque,
|
|
nOutBufferSize: u32,
|
|
lpBytesRead: ?*u32,
|
|
nTimeOut: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows5.0'
|
|
pub extern "kernel32" fn WaitNamedPipeA(
|
|
lpNamedPipeName: ?[*:0]const u8,
|
|
nTimeOut: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetNamedPipeClientComputerNameA(
|
|
Pipe: ?HANDLE,
|
|
// TODO: what to do with BytesParamIndex 2?
|
|
ClientComputerName: ?PSTR,
|
|
ClientComputerNameLength: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetNamedPipeClientProcessId(
|
|
Pipe: ?HANDLE,
|
|
ClientProcessId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetNamedPipeClientSessionId(
|
|
Pipe: ?HANDLE,
|
|
ClientSessionId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetNamedPipeServerProcessId(
|
|
Pipe: ?HANDLE,
|
|
ServerProcessId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
// TODO: this type is limited to platform 'windows6.0.6000'
|
|
pub extern "kernel32" fn GetNamedPipeServerSessionId(
|
|
Pipe: ?HANDLE,
|
|
ServerSessionId: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) BOOL;
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Unicode Aliases (5)
|
|
//--------------------------------------------------------------------------------
|
|
const thismodule = @This();
|
|
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
|
|
.ansi => struct {
|
|
pub const CreateNamedPipe = thismodule.CreateNamedPipeA;
|
|
pub const WaitNamedPipe = thismodule.WaitNamedPipeA;
|
|
pub const GetNamedPipeClientComputerName = thismodule.GetNamedPipeClientComputerNameA;
|
|
pub const GetNamedPipeHandleState = thismodule.GetNamedPipeHandleStateA;
|
|
pub const CallNamedPipe = thismodule.CallNamedPipeA;
|
|
},
|
|
.wide => struct {
|
|
pub const CreateNamedPipe = thismodule.CreateNamedPipeW;
|
|
pub const WaitNamedPipe = thismodule.WaitNamedPipeW;
|
|
pub const GetNamedPipeClientComputerName = thismodule.GetNamedPipeClientComputerNameW;
|
|
pub const GetNamedPipeHandleState = thismodule.GetNamedPipeHandleStateW;
|
|
pub const CallNamedPipe = thismodule.CallNamedPipeW;
|
|
},
|
|
.unspecified => if (@import("builtin").is_test) struct {
|
|
pub const CreateNamedPipe = *opaque{};
|
|
pub const WaitNamedPipe = *opaque{};
|
|
pub const GetNamedPipeClientComputerName = *opaque{};
|
|
pub const GetNamedPipeHandleState = *opaque{};
|
|
pub const CallNamedPipe = *opaque{};
|
|
} else struct {
|
|
pub const CreateNamedPipe = @compileError("'CreateNamedPipe' requires that UNICODE be set to true or false in the root module");
|
|
pub const WaitNamedPipe = @compileError("'WaitNamedPipe' requires that UNICODE be set to true or false in the root module");
|
|
pub const GetNamedPipeClientComputerName = @compileError("'GetNamedPipeClientComputerName' requires that UNICODE be set to true or false in the root module");
|
|
pub const GetNamedPipeHandleState = @compileError("'GetNamedPipeHandleState' requires that UNICODE be set to true or false in the root module");
|
|
pub const CallNamedPipe = @compileError("'CallNamedPipe' requires that UNICODE be set to true or false in the root module");
|
|
},
|
|
};
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Imports (7)
|
|
//--------------------------------------------------------------------------------
|
|
const BOOL = @import("../foundation.zig").BOOL;
|
|
const FILE_FLAGS_AND_ATTRIBUTES = @import("../storage/file_system.zig").FILE_FLAGS_AND_ATTRIBUTES;
|
|
const HANDLE = @import("../foundation.zig").HANDLE;
|
|
const OVERLAPPED = @import("../system/io.zig").OVERLAPPED;
|
|
const PSTR = @import("../foundation.zig").PSTR;
|
|
const PWSTR = @import("../foundation.zig").PWSTR;
|
|
const SECURITY_ATTRIBUTES = @import("../security.zig").SECURITY_ATTRIBUTES;
|
|
|
|
test {
|
|
@setEvalBranchQuota(
|
|
comptime @import("std").meta.declarations(@This()).len * 3
|
|
);
|
|
|
|
// reference all the pub declarations
|
|
if (!@import("builtin").is_test) return;
|
|
inline for (comptime @import("std").meta.declarations(@This())) |decl| {
|
|
_ = @field(@This(), decl.name);
|
|
}
|
|
}
|