本文整理汇总了Java中com.sun.jna.platform.win32.WinBase.INVALID_HANDLE_VALUE属性的典型用法代码示例。如果您正苦于以下问题:Java WinBase.INVALID_HANDLE_VALUE属性的具体用法?Java WinBase.INVALID_HANDLE_VALUE怎么用?Java WinBase.INVALID_HANDLE_VALUE使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类com.sun.jna.platform.win32.WinBase
的用法示例。
在下文中一共展示了WinBase.INVALID_HANDLE_VALUE属性的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: CygwinPtyProcess
public CygwinPtyProcess(String[] command, Map<String, String> environment, String workingDirectory, File logFile, boolean console)
throws IOException {
String pipePrefix = String.format("\\\\.\\pipe\\cygwinpty-%d-%d-", KERNEL32.GetCurrentProcessId(), processCounter.getAndIncrement());
String inPipeName = pipePrefix + "in";
String outPipeName = pipePrefix + "out";
String errPipeName = pipePrefix + "err";
myInputHandle = KERNEL32.CreateNamedPipeA(inPipeName, PIPE_ACCESS_OUTBOUND | WinNT.FILE_FLAG_OVERLAPPED, 0, 1, 0, 0, 0, null);
myOutputHandle = KERNEL32.CreateNamedPipeA(outPipeName, PIPE_ACCESS_INBOUND | WinNT.FILE_FLAG_OVERLAPPED, 0, 1, 0, 0, 0, null);
myErrorHandle =
console ? KERNEL32.CreateNamedPipeA(errPipeName, PIPE_ACCESS_INBOUND | WinNT.FILE_FLAG_OVERLAPPED, 0, 1, 0, 0, 0, null) : null;
if (myInputHandle == WinBase.INVALID_HANDLE_VALUE ||
myOutputHandle == WinBase.INVALID_HANDLE_VALUE ||
myErrorHandle == WinBase.INVALID_HANDLE_VALUE) {
closeHandles();
throw new IOException("Unable to create a named pipe");
}
myInputPipe = new NamedPipe(myInputHandle, false);
myOutputPipe = new NamedPipe(myOutputHandle, false);
myErrorPipe = myErrorHandle != null ? new NamedPipe(myErrorHandle, false) : null;
myProcess = startProcess(inPipeName, outPipeName, errPipeName, workingDirectory, command, environment, logFile, console);
}
示例2: openDevice
public static boolean openDevice() throws IOException {
/* Kernel32RW.GENERIC_READ | Kernel32RW.GENERIC_WRITE not used in dwDesiredAccess field for system devices such a keyboard or mouse */
int shareMode = WinNT.FILE_SHARE_READ | WinNT.FILE_SHARE_WRITE;
int Access = WinNT.GENERIC_WRITE | WinNT.GENERIC_READ;
HandleToDevice = Kernel32.INSTANCE.CreateFile(
Devices.getConnectedDeviceWin32().getDevPath(),
Access,
shareMode,
null,
WinNT.OPEN_EXISTING,
0,//WinNT.FILE_FLAG_OVERLAPPED,
(WinNT.HANDLE)null);
if (HandleToDevice == WinBase.INVALID_HANDLE_VALUE) throw new IOException(getLastError());
return true;
}
示例3: openDeviceAsync
public static boolean openDeviceAsync() throws IOException {
/* Kernel32RW.GENERIC_READ | Kernel32RW.GENERIC_WRITE not used in dwDesiredAccess field for system devices such a keyboard or mouse */
int shareMode = WinNT.FILE_SHARE_READ | WinNT.FILE_SHARE_WRITE;
int Access = WinNT.GENERIC_WRITE | WinNT.GENERIC_READ;
HandleToDevice = Kernel32.INSTANCE.CreateFile(
Devices.getConnectedDeviceWin32().getDevPath(),
Access,
shareMode,
null,
WinNT.OPEN_EXISTING,
WinNT.FILE_FLAG_OVERLAPPED,
(WinNT.HANDLE)null);
if (HandleToDevice == WinBase.INVALID_HANDLE_VALUE) throw new IOException(getLastError());
return true;
}
示例4: createEvent
public static WinNT.HANDLE createEvent() throws IOException {
WinNT.HANDLE hevent = kernel32.CreateEvent(null, false, false, null);
int res = kernel32.GetLastError();
if (hevent == WinBase.INVALID_HANDLE_VALUE || res!=0)
throw new IOException(JKernel32.getLastError());
return hevent;
}
示例5: closeDevice
public static boolean closeDevice() {
boolean result = true;
if (HandleToDevice != WinBase.INVALID_HANDLE_VALUE) {
result = kernel32.CloseHandle(HandleToDevice);
}
HandleToDevice = WinBase.INVALID_HANDLE_VALUE;
return result;
}