代码拉取完成,页面将自动刷新
NOTE: as of JNA 4.0, JNA is now dual-licensed under LGPL and AL 2.0 (see LICENSE).
NOTE: JNI native support is typically incompatible between minor versions, and almost always incompatible between major versions.
c.s.j.p.mac
. @dbwiddis.c.s.j.p.mac.SystemB
now extends c.s.j.p.unix.LibCAPI
. @dbwiddis.c.s.j.p.win32.Kernel32#CreateRemoteThread
and bind VirtualAllocEx
, VirtualFreeEx
, GetExitCodeThread
in c.s.j.p.win32.Kernel32
- @apangin, @matthiasblaesing.c.s.j.p.win32.COM.IShellFolder#ParseDisplayName
- @dbwiddis.c.s.j.p.win32.WinNT.java
- @trevormaggs.Info-ZIP Unicode Path
extra info - @matthiasblaesing.WinBase.SYSTEM_INFO.processorArchitecture
union - @dbwiddis.c.s.j.p.win32.Advapi32Util.EventLogRecord#getEventId
in favor of #getInstanceId
- @dbwiddis..ocx
as extension of native libraries on windows - @dmigowski.c.s.j.Structure#newInstance
by iteration available constructors instead of exception handling @bjorndarri.Structure#toArray
in c.s.j.p.win32.Netapi32Util
- @trevormagg, @matthiasblaesing.c.s.j.internal.ReflectionUtils
accesses java.lang.invoke.MethodType
without reflection, causing java.lang.NoClassDefFoundError
on android API level < 26 - @matthiasblaesing.c.s.j.p.win32.VersionHelpers
and supporting functions - @dbwiddis.c.s.j.p.win32.Kernel32.GetLogicalProcessorInformationEx
function, convenience Util method and supporting structures - @dbwiddis.c.s.j.p.win32.PowrProf#CallNTPowerInformation
and supporting structures - @dbwiddis.c.s.j.p.win32.User32
and associated classes to support keyboard related functionality. - @kevemueller.c.s.j.p.win32.Advapi32Util.getAccountBySid(String systemName, PSID sid)
ignored parameter instead of passing it to the native function - @nirud.c.s.j.p.win32.COM.util.ProxyObject
- @matthiasblaesing.c.s.j.p.win32.COM.WbemcliUtil#enumerateProperties
and bind c.s.j.p.win32.COM.Wbemcli.IWbemClassObject.GetNames
- @matthiasblaesing.c.s.j.p.win32.PdhUtil
- @dbwiddis.c.s.j.p.linux
in OSGi bundle. - @dbwiddis.libjnidispatch.a
, OpenJDK maps to libjnidispatch.so
, which causes the native library extractor to fail. AIX is now hard-coded to libjnidispatch.a
- @matthiasblaesing.System.out
and System.err
in favor of regular logging - @matthiasblaesing.c.s.j.p.win32.Kernel32#OpenEvent
- @matthiasblaesing.Advapi32Util.registryValueExists
called on non existing key raises exception instead of returning false
- @matthiasblaesing.System#loadLibrary
mechanism, defaulting jna.nosys
to true
disabled that code path - @matthiasblaesing.c.s.j.p.WindowUtils.W32WindowUtils.getProcessFilePath(HWND)
does not close process handle - @matthiasblaesing.c.s.j.p.unix.X11.XResizeRequestEvent
- @matthiasblaesing.statvfs
to c.s.j.platform.linux.LibC
- @dbwiddis.c.s.j.platform.win32.COM.util.annotation.ComEventCallback
in favour of c.s.j.platform.win32.COM.util.annotation.ComMethod
- @matthiasblaesing.com.sun.jna.platform.linux.XAttr
and com.sun.jna.platform.linux.XAttrUtil
JNA wrapper for <sys/xattr.h>
for Linux - @wilx.c.s.j.p.win32.Secur32#CompleteAuthToken
- @matthiasblaesing.HRESULT
in c.s.j.p.win32.COM.COMException
, introduce c.s.j.p.win32.COM.COMInvokeException
as subclass of COMException
for exception as the result of a IDispatch#Invoke
. The EXECPINFO
is unwrapped into fields in the COMInvokeException
and correctly freed. - @matthiasblaesing.Native#loadLibrary
requires that the interface class passed in is an instance of Library. The runtime check can be enhanced by using a constraint generic. This breaks binary compatibility (see notes below) - @d-noll.loadLibrary
methods were deprecated and Native#load
methods were introduced, that hold the new generic definitions. So this change is now binary compatible.Structure#newInstance
receive the target type as a parameter. This adds a limited generic type, so that the return type ist the target type and not a generic structure, removing the necessity to do an explizit cast - @matthiasblaesing.@ComInterface
annotation to com.sun.jna.platform.win32.COM.util.IConnectionPoint
to make it possible to retrieve it via IUnknown#queryInterface
- @matthiasblaesing.Advapi32#EnumDependendServices
, Advapi32#EnumServicesStatusEx
and Advapi32#QueryServiceStatus
. W32Service#stopService
was modified to be more resilent when stopping service - @matthiasblaesing.com.sun.jna.platform.win32.Kernel32.ExpandEnvironmentStrings
and add helper method for it as Kernel32Util#expandEnvironmentStrings
- @matthiasblaesing.ACEs
from com.sun.jna.platform.win32.WinNT.ACL
even if the contained ACE
is not currently supported - @jrobhoward.c.s.j.Structure.FieldOrder
annotation to define the field order of a structures without implementing Structure#getFieldOrder()
- @idosu.GetProcessTimes
and GetProcessIoCounters
to com.sun.jna.platform.win32.Kernel32
- @dbwiddis.CreateMutex
, OpenMutex
and ReleaseMutex
to com.sun.jna.platform.win32.Kernel32
- @matthiasblaesing.PdhLookupPerfNameByIndex
, PdhLookupPerfIndexByName
, and PdhEnumObjectItems
to c.s.j.platform.win32.Pdh
and a c.s.j.platform.win32.PdhUtil
class to access them - @dbwiddis.PERF_OBJECT_TYPE
, PERF_COUNTER_BLOCK
, and PERF_COUNTER_DEFINITION
to c.s.j.platform.win32.WinPerf
and added Pointer
constructors to ``PERF_INSTANCE_DEFINITIONand
PERF_DATA_BLOCK` - @dbwiddis.WTS_PROCESS_INFO_EX
, WTSEnumerateProcessesEx
, and WTSFreeMemoryEx
to c.s.j.platform.win32.Wtsapi32
- @dbwiddis.GetIfEntry
, GetIfEntry2
, and GetNetworkParams
and supporting structures MIB_IFROW
, MIB_IF_ROW2
, and FIXED_INFO
to c.s.j.platform.win32.IPHlpAPI.java
- @dbwiddis.CM_Locate_DevNode
, CM_Get_Parent
, CM_Get_Child
, CM_Get_Sibling
, CM_Get_Device_ID
, and CM_Get_Device_ID_Size
to c.s.j.platform.win32.Cfgmgr32.java
and a c.s.j.platform.win32.Cfgmgr32Util
class for CM_Get_Device_ID
- @dbwiddis.PdhLookupPerfIndexByEnglishName
to c.s.j.platform.win32.PdhUtil
- @dbwiddis.c.s.j.platform.mac.SystemB
for Process, Network interface, Swapfile, Time, and Filesystem info - @dbwiddis.Sysinfo
structure and function to c.s.j.platform.linux.LibC
- @dbwiddis.c.s.j.platform.win32.Advapi32Util
methods which allow the caller to specify samDesiredExtra
to request additional registry key security and access rights - @camw.NativeMapped
to be used with enums - @koraktor.CoInitializeSecurity
and CoSetProxyBlanket
to c.s.j.platform.win32.Ole32
, added new c.s.j.platform.win32.Wbemcli
classes needed to query WMI, and added a WbemcliUtil
class implementing WMI queries. - @dbwiddis.~/Library/Application Support/JNA/temp
and on other Unix like systems $XDG_CACHE_DIR/JNA/temp
(Default value is: ~/.cache/JNA/temp
) is used - @matthiasblaesing.com.sun.jna.platform.win32.Kernel32#ExitProcess
- @Groostav.com.sun.jna.platform.win32.SecBufferDesc
and add convenience binding as com.sun.jna.platform.win32.SspiUtil.ManagedSecBufferDesc
. Bind SSPI functions InitializeSecurityContext
, AcceptSecurityContext
, QueryCredentialsAttributes
, QuerySecurityPackageInfo
, EncryptMessage
, DecryptMessage
, MakeSignature
, VerifySignature
in com.sun.jna.platform.win32.Secur32
- @matthiasblaesing.COMLateBindingObject#getStringProperty
- @matthiasblaesing.gethostname
, sethostname
, getdomainname
and setdomainname
and bind com.sun.jna.platform.win32.Winsock2.gethostname(byte[], int)
- @matthiasblaesing.ELFAnalyser#runDetection
, fix suggested by @Sylvyrfysh in #880 - @matthiasblaesing.com.sun.jna.platform.win32.COM.util.ProxyObject#dispose
multiple times - @matthiasblaesing.Structure#validate
and prevent ArrayIndexOutOfBoundsException
in SAFEARRAY#read
for zero dimensions - @matthiasblaesing.javah
was removed from the JDK and javac
is now used to create the necessary headers.
JNA now has JDK 8 as the minimum build version, at runtime Java 6 is the minimum version.JNIEnv
pointer was used to access the JVM - @matthiasblaesing.lpAccessName
parameter of com.sun.jna.platform.win32.Mpr#WNetUseConnection
- @matthiasblaesing.jna.nosys
to true
. By default then the embedded native library is used - @matthiasblaesing.com.sun.jna.Pointer#SIZE
is removed. Its use is replaced by com.sun.jna.Native#POINTER_SIZE
to prevent a class loading deadlock, when JNA is initialized from multiple threadscom.sun.jna.Pointer#getString(long offset, boolean wide)
is removed. It was replaced by
com.sun.jna.Pointer#getString(long offset)
or
com.sun.jna.Pointer#getWideString(long offset)
com.sun.jna.Pointer#getStringArray(long offset, boolean wide)
is removed. It was replaced by
com.sun.jna.Pointer#getStringArray(long offset)
or
com.sun.jna.Pointer#getWideStringArray(long offset)
com.sun.jna.Pointer#setString(long offset, String value, boolean wide)
is removed. It was replaced by
com.sun.jna.Pointer#setString(long offset, String value)
or
com.sun.jna.Pointer#setWideString(long offset, String value)
com.sun.jna.Structure#setFieldOrder
is removed. It was replaced by
com.sun.jna.Structure#getFieldOrder
and threw an java.lang.Error
on call.com.sun.jna.Native#parseVersion
was removed without replacementcom.sun.jna.Native#setPreserveLastError
and com.sun.jna.Native#getPreserveLastError
were removed without replacement. They were turned into NOOPs in the past.com.sun.jna.Native#getDirectByteBuffer
was replaced by com.sun.jna.Pointer#getByteBuffer
gethostname
, sethostname
, getdomainname
and setdomainname
in the interface com.sun.jna.platform.unix.LibCAPI
were changed from (char[] name, int len)
to (byte[] name, int len)
com.sun.jna.Platform#isAix
was replaced by com.sun.jna.Platform#isAIX
com.sun.jna.platform.win32.Sspi.SecBufferDesc
was incompatibly changed to
match the correct native semantics. SecBufferDesc describing more than one
buffer were broken. For most usecases
com.sun.jna.platform.win32.SspiUtil.ManagedSecBufferDesc
is the best
alternative.com.sun.jna.platform.win32.WinBase.FILETIME#toLong()
was replaced by
com.sun.jna.platform.win32.WinBase.FILETIME#toTime()
com.sun.jna.platform.win32.Variant#COM_DAYS_ADJUSTMENT
was removedcom.sun.jna.platform.win32.Variant#MICRO_SECONDS_PER_DAY
was removedcom.sun.jna.platform.win32.Variant.VARIANT#toJavaDate
was removedcom.sun.jna.platform.win32.Variant.VARIANT#fromJavaDate
was removedcom.sun.jna.platform.win32.User32#MonitorFromPoint(Point pt, int dwFlags)
was replaced by
com.sun.jna.platform.win32.User32#MonitorFromPoint(Point.ByValue pt, int dwFlags)
com.sun.jna.platform.win32.OleAuto.LoadTypeLib(WString, PointerByReference)
was replaced by
com.sun.jna.platform.win32.OleAuto.LoadTypeLib(String, PointerByReference)
com.sun.jna.platform.win32.Kernel32Util.formatMessageFromHR(HRESULT)
was replaced by
com.sun.jna.platform.win32.Kernel32Util.formatMessage(HRESULT)
com.sun.jna.platform.win32.COM.COMException
was structurally modified. The
pExcepInfo
and puArgErr
members were removed and hresult
member was added.
The now missing information in COMException
was moved to COMInvokeException
.com.sun.jna.platform.win32.COM.IShellFolder#GetDisplayNameOf
was changed from PointerByReference
to STRRET
and matching this,
the first parameter of com.sun.jna.platform.win32.Shlwapi.StrRetToStr
was
changed identically.ACE_HEADER
replaces ACEStructure
as the base class for ACEs
.
com.sun.jna.platform.win32.WinNT.ACL
was modified to support ACLS, that contain
ACEs
other than ACCESS_ALLOWED_ACE_TYPE
and ACCESS_DENIED_ACE_TYPE
by
widening the return type of getACEStructures
to ACE_HEADER[]
and renaming
the method to getACEs
. In
consequence com.sun.jna.platform.win32.Advapi32Util#getFileSecurity
was
changed similarly. The SID accessors getSidString
and getSID
were moved
from ACEStructure
to ACCESS_ACEStructure
.com.sun.jna.platform.win32.Ole32#CoCreateGuid(GUID.ByReference pguid)
was replaced by
com.sun.jna.platform.win32.Ole32#CoCreateGuid(GUID pguid)
and
com.sun.jna.platform.win32.Ole32#CLSIDFromString(WString lpsz, CLSID.ByReference pclsid)
was replaced by
com.sun.jna.platform.win32.Ole32#CLSIDFromString(String lpsz, CLSID.ByReference pclsid)
OleBuildVersion
, OleInitialize
, OleUninitialize
, OleFlushClipboard
, OleRun
, add VARIANT conversion functions to OleAuto, add default locale, LCID and LANG to WinNT - @matthiasblaesing.boolean[]
in direct mapping - @ncruces.com.sun.jna.platform.win32.Advapi32
: StartServiceCtrlDispatcher
, RegisterServiceCtrlHandler
, RegisterServiceCtrlHandlerEx
, SetServiceStatus
, CreateService
, DeleteService
and com.sun.jna.platform.win32.Winsvc
: Handler
, HandlerEx
, SERVICE_MAIN_FUNCTION
, SERVICE_TABLE_ENTRY
, SERVICE_DESCRIPTION
, SERVICE_STATUS_HANDLE
- @matthiasblaesing.com.sun.jna.platform.win32.User32#MonitorFromPoint
- @matthiasblaesing.com.sun.jna.platform.win32.Mpr
, com.sun.jna.platform.win32.LmShare
, and com.sun.jna.platform.win32.Winnetwk
- @amarcionek.ACCESS_*
definitions to com.sun.jna.platform.win32.LmAccess
- @amarcionek.NetShareAdd
and NetShareDel
to com.sun.jna.platform.win32.Netapi32
- @amarcionek.CreateProcessWithLogonW
to com.sun.jna.platform.win32.Advapi32
- @mlfreeman2.CertAddEncodedCertificateToSystemStore
to com.sun.jna.platform.win32.Crypt32
- @mlfreeman2.BitBlt
to com.sun.jna.platform.win32.GDI32
, Added com.sun.jna.platform.win32.GDI32Util
and added getScreenshot()
to it - @mlfreeman2.SHEmptyRecycleBin
, ShellExecuteEx
to com.sun.jna.platform.win32.Shell32
- @mlfreeman2.GetDesktopWindow
to com.sun.jna.platform.win32.User32
- @mlfreeman2.ProcessIdToSessionId
, LoadLibraryEx
, FreeLibrary
and Find/Load/Lock/SizeofResource
to com.sun.jna.platform.win32.Kernel32
- @mlfreeman2.EnumResourceTypes
and EnumResourceNames
to com.sun.jna.platform.win32.Kernel32
- @mlfreeman2.GetSystemTimes
to com.sun.jna.platform.win32.Kernel32
- @dbwiddis.com.sun.jna.platform.win32.WinBase.FILETIME
- @dbwiddis.bool
- @twall.XFetchName
to X11
interface - @pinaf.Module32FirstW
and Module32NextW
to com.sun.jna.platform.win32.Kernel32
(and helper to com.sun.jna.platform.win32.Kernel32Util
) and MODULEENTRY32W
structure to com.sun.jna.platform.win32.Tlhelp32
- @mlfreeman2.com.sun.jna.platform.win32.VersionUtil
with getFileVersionInfo
utility method to get file major, minor, revision, and build version parts - @mlfreeman2.com.sun.jna.platform.win32.Wininet
with the following 4 methods: FindFirstUrlCacheEntry
, DeleteUrlCacheEntry
, FindCloseUrlCache
, FindNextUrlCacheEntry
, and the INTERNET_CACHE_ENTRY_INFO
structure, and a helper in com.sun.jna.platform.win32.WininetUtil
for parsing WinInet's cache - @mlfreeman2.PrintWindow
, IsWindowEnabled
, IsWindow
, FindWindowEx
, GetAncestor
, GetCursorPos
, SetCursorPos
, SetWinEventHook
, UnhookWinEvent
, CopyIcon
, and GetClassLong
to com.sun.jna.platform.win32.User32
and supporting constants to com.sun.jna.platform.win32.WinUser
- @mlfreeman2.EnumProcessModules
, GetModuleInformation
, and GetProcessImageFileName
to com.sun.jna.platform.win32.Psapi
and added ExtractIconEx
to com.sun.jna.platform.win32.Shell32
- @mlfreeman2.com.sun.jna.platform.win32.Winspool.PRINTER_INFO_2
support. Added GetPrinter and ClosePrinter functions in com.sun.jna.platform.win32.Winspool
- @IvanRF.com.sun.jna.MethodResultContext
in direct mapping (as done in interface mapping) - @marco2357.Kernel32Util.freeLocalMemory()
/Kernel32Util.freeGlobalMemory()
always throw com.sun.jna.platform.win32.Win32Exception
if failed - @lgoldstein.com.sun.jna.platform.win32.Win32Exception
extend com.sun.jna.LastErrorException
- @lgoldstein.com.sun.jna.platform.win32.Kernel32Util.closeHandle()
method that throws a com.sun.jna.platform.win32.Win32Exception
if failed to close the handle - @lgoldstein.wTypeFlags
in com.sun.jna.platform.win32.OaIdl.TYPEATTR
- @SevenOf9Sleeper.com.sun.jna.platform.win32.COM.util.Convert
more flexible and dependable - @matthiasblaesing.com.sun.jna.platform.win32.Psapi.GetPerformanceInfo()
, com.sun.jna.platform.win32.Kernel32.GetTickCount64()
, and com.sun.jna.platform.win32.Kernel32.SetErrorMode()
- @dbwiddis.com.sun.jna.platform.win32.COM.util.CallbackProxy
based callbacks - @matthiasblaesing.com.sun.jna.platform.win32.COM.util.ProxyObject
-based COM calls - @matthiasblaesing.XSetWMProtocols
and XGetWMProtocols
to com.sun.jna.platform.unix.X11
- @zainab-ali.com.sun.jna.platform.win32.Advapi32
- @amarcionek.com.sun.jna.platform.win32.NtDll
- @amarcionek.SetCurrentProcessExplicitAppUserModelID
and GetCurrentProcessExplicitAppUserModelID
to com.sun.jna.platform.win32.Shell32
for setting the System.AppUserModel.ID of the host process - @rednoah.GetClientRect
to com/sun/jna/platform/win32/User32
- @Jonatino.GetProcAddress(HMODULE, int)
to com.sun.jna.platform.win32.Kernel32
- @matthiasblaesing.com.sun.jna.platform.win32.Wevtapi
and com.sun.jna.platform.win32.Winevt
- @sakamotodesu.SetThreadExecutionState
to com.sun.jna.platform.win32.Kernel32
- @matthiasblaesing.GetSecurityDescriptorOwner
, SetSecurityDescriptorOwner
, GetSecurityDescriptorGroup
, SetSecurityDescriptorGroup
, GetSecurityDescriptorControl
, SetSecurityDescriptorControl
, GetSecurityDescriptorDacl
, SetSecurityDescriptorDacl
, MakeSelfRelativeSD
, MakeAbsoluteSD
, EqualSid
, InitializeSecurityDescriptor
, InitializeAcl
, AddAce
, AddAccessAllowedAce
, AddAccessAllowedAceEx
, and GetAce
to `com.sun.jna.platform.win32.Advapi32 - @amarcionek.RtlNtStatusToDosError
to `com.sun.jna.platform.win32.NtDll - @amarcionek.com.sun.jna.platform.win32.WinioctlUtil
for help in determining FSCTL_* codes - @amarcionek.com.sun.jna.platform.win32.Ntifs
with Reparse Point structures and defines - @amarcionek.GetFileInformationByHandleEx
and SetFileInformationByHandle
to com.sun.jna.platform.win32.Kernel32
- @amarcionek.com.sun.jna.platform.win32.WinioctlUtil
for simplicity dealing with FSCTL_* codes - @amarcionek.SysStringByteLen
and SysStringLen
to com.sun.jna.platform.win32.OleAuto
- @matthiasblaesing.platform.win32.COM.COMBindingBaseObject
swallows reason if instantiation fails - @matthiasblaesing.com.sun.jna.platform.win32.DsGetDC
, com.sun.jna.platform.win32.LMAccess
, com.sun.jna.platform.win32.LMShare
, com.sun.jna.platform.win32.Sspi
, com.sun.jna.platform.win32.WinBase
, com.sun.jna.platform.win32.WinCrypt
, com.sun.jna.platform.win32.WinUser
and com.sun.jna.platform.win32.Winnetwk
- @matthiasblaesing.Native.toString()
in #getFileName()
and #getAlternateFileName()
in c.s.j.p.win32.WinBase
instead of custom NUL terminator logic - @jhult.GetCommState
, GetCommTimeouts
SetCommState
and SetCommTimeouts
to com.sun.jna.platform.win32.Kernel32
. Added DCB
structure to com.sun.jna.platform.win32.WinBase
- @MBollig.host_processor_info
to com.sun.jna.platform.mac.SystemB
- @dbwiddis.com.sun.jna.platform.mac.SystemB
including support for sysctl
, sysctlbyname
, sysctlnametomib
, mach_host_self
, host_page_size
, host_statistics
and host_statistics64
- @dbwiddis.com.sun.jna.platform.win32.Advapi32.GetNamedSecurityInfo
, SetNamedSecurityInfo
, GetSecurityDescriptorLength
, IsValidSecurityDescriptor
, IsValidAcl
- @amarcionek.InvocationHandler
) - @dhakehurst.RunningObjectTable
- @dhakehurst.com.sun.jna.Structure
- @ebourg.com.sun.jna.platform.win32.Dxva2
- @msteiger.CoTaskMemAlloc
, CoTaskMemRealloc
and CoTaskMemFree
to com.sun.jna.platform.win32.Ole32
- @msteiger.com.sun.jna.platform.win32.Shell32.SHGetKnownFolderPath
and KnownFolders
GUID constants - @msteiger.com.sun.jna.platform.mac.XAttr
and com.sun.jna.platform.mac.XAttrUtil
JNA wrapper for <sys/xattr.h>
for Mac OS X - @rednoah.GetWindowPlacement
, SetWindowPlacement
, AdjustWindowRect
, AdjustWindowRectEx
, ExitWindowsEx
, and LockWorkstation
to com.sun.jna.platform.win32.User32
- @Timeroot.CreateRemoteThread
, WritePocessMemory
and ReadProcessMemory
to com.sun.jna.platform.win32.Kernel32
- @sstokic-tgm.jnacontrib.x11.api.X.Window.getSubwindows
- @rm5248.contrib/msoffice
sample - @wolftobias.com.sun.jna.Library$Handler
and fewer vararg checks in com.sun.jna.Function
- @Boereck.com.sun.jna.Library$Handler
and com.sun.jna.Function
- @Boereck.com.sun.jna.platform.win32.Kernel32.SetSystemTime
- @lgoldstein, @thomasjoulin.com.sun.jna.platform.win32.Kernel32.GetComputerNameEx
support - @lgoldstein.com.sun.jna.platform.win32.Kernel32.VirtualQueryEx
, com.sun.jna.platform.win32.WinNT.MEMORY_BASIC_INFORMATION
and MEM_COMMIT
, MEM_FREE
, MEM_RESERVE
, MEM_IMAGE
, MEM_MAPPED
, MEM_PRIVATE
constants - @apsk.com.sun.jna.VarArgsChecker
for faster vararg checks. Used in com.sun.jna.Function
- @Boereck.com.sun.jna.platform.win32.Advapi3.EncryptFile
, DecryptFile
, FileEncryptionStatus
, EncryptionDisable
, OpenEncryptedFileRaw
, ReadEncryptedFileRaw
, WriteEncryptedFileRaw
, and CloseEncryptedFileRaw
with related Advapi32Util
helpers - @khalidq.com.sun.jna.platform.WindowUtils.getAllWindows
, getWindowIcon
, getIconSize
, getWindowTitle
, getPRocessFilePath
and getWindowLocationAndSize
- @PAX523.com.sun.jna.platform.win32.Kernel32Util.getLastErrorMessage
- @PAX523.com.sun.jna.platform.win32.GDI32.GetObject
- @PAX523.com.sun.jna.platform.win32.Psapi.GetModuleFileNameEx
- @PAX523.com.sun.jna.platform.win32.User32.GetIconInfo
, SendMessageTimeout
and GetClassLongPtr
- @PAX523.com.sun.jna.platform.win32.WinGDI.ICONINFO
and BITMAP
- @PAX523.com.sun.jna.platform.win32.WinNT
- @PAX523.com.sun.jna.platform.win32.WinUser
- @PAX523.GetClassLong
, SendMessageTimeout
and GetIconInfo
in com.sun.jna.platform.win32.WinUser
- @PAX523.SetupDiOpenDevRegKey
, SetupDiEnumDeviceInfo
and related constants to com.sun.jna.platform.win32.SetupApi
- @ChristianSchwarz.XGrabKeyboard
and XUngrabKeyboard
to X11
interface - @pinaf.com.sun.jna.platform.win32.Kernel32
- @lgoldstein.aarch64
, x86-64
, mips
, and mips64
targets - @twall.com.sun.jna.platform.win32.Kernel32
- @lgoldstein.com.sun.jna.platform.win32.Kernel32.SetLocalTime
- @lgoldstein.com.sun.jna.platform.win32.Kernel32.GetEnvironmentStrings
- @lgoldstein.com.sun.jna.platform.win32
- @lgoldstein.com.sun.jna.platform.win32
- @lgoldstein.Comparable
interface for many of the base types in com.sun.jna.platform.win32.WinDef
- @lgoldstein.GetRawInputDeviceList
to com.sun.jna.platform.win32.User32
and User32Util
- @lgoldstein.jnacontrib.x11.api.X.Window.getXXXProperty
, returns null
if the window property is not found - @rm5248.com.sun.jna.platform.win32.Variant
and TlbImp
- @wolftobias.com.sun.jna.Pointer.getWideStringArray
not respecting the length parameter - @csoren.com.sun.jna.platform.win32.WTypes.LPWSTR
and LPSTR
constructors - @junak-michal.com.sun.jna.platform.win32.COM.COMUtils.SUCCEEDED
and FAILED
- @lwahonen.VARIANT
constructors for int
, short
, and long
- @lwahonen.Structure.equals()/hashCode()
- @twall.com.sun.jna.platform.win32.Advapi32Util.registryCloseKey
- @falldog.com.sun.jna.platform.win32.COM.tlb.TlbImp
- @wolftobias.com.sun.jna.platform.win32.Rasapi32
and Rasapi32Util
- @kc7bfi.com.sun.jna.platform.win32.Advapi32Util.registryGet*
API to support KEY_WOW64
option - @falldog.com.sun.jna.platform.win32.Gdi32.ChoosePixelFormat
and SetPixelFormat
- @kc7bfi.com.sun.jna.platform.win32.OpenGL32
, OpenGL32Util
and WinOpenGL
- @kc7bfi.com.sun.jna.platform.win32.Kernel32.GetPrivateProfileSection
, GetPrivateProfileSectionNames
and WritePrivateProfileSection
and corresponding Kernel32Util
helpers - @quipsy-karg.DBTF_MEDIA
and DBTF_NET
to com.sun.jna.platform.win32.DBT
- @daifei4321.com.sun.jna.platform.win32.Kernel32.ResetEvent
- @manithree.accessCheck
to com.sun.jna.platform.win32.Advapi32Util
, MapGenericMask
and AccessCheck
to com.sun.jna.platform.win32.Advapi32
, PRIVILEGE_SET
and GENERIC_MAPPING
to com.sun.jna.platform.win32.WinNT
- @BusyByte.Structure.ByValue
fields within a Structure
- @twall.win32.Win32WindowDemo
, now showing the added/removed drive letter, and whether the event is about media in drive or physical drive - @daifei4321.Library.OPTION_CLASSLOADER
, which enables loading native libraries from any class loader (including JNA's native library). This enables parallel dependencies on JNA (e.g. within a tomcat deployment without having to include JNA in the app server environment) - @twall.Native.getDefaultStringEncoding()
and Structure.getStringEncoding()
) - @twall.com.sun.jna.Memory
) - @twall.platform.win32.Kernel32.GetLogicalProcessorInformation
and platform.win32.Kernel32Util.getLogicalProcessorInformation
- @trejkaz.jna.profiler.prefix
, which defaults to $$YJP$$ - @twall.jna.debug_load
property to diagnose library loading issues - @twall.IllegalArgumentException
when Structure.ByReference
is used where it shouldn't be (can result in multiply freed memory or other unexpected behavior) - @twall.com.sun.jna.platform.win32.Shell32.SHAppBarMessage
- @bsorrentino.Structure.read/writeField()
protected to facilitate per-field overrides - @twall.Structure.toString()
not to dump memory when jna.dump_memory
is false - @tomohiron.strerror_r
on linux - LionelCons.SecurityManager
implementation - @twall.CreateProcessW
(Unicode version) - @twall.snprintf
on windows is broken) - @davidhoyt.GUID
structure can be used directly as alternative to Ole32Util.getGUIDFromString()
- @wolftobias.dbt.h
- @wolftobias.WTSRegisterSessionNotification()
and WTSUnRegisterSessionNotification()
from Wtsapi32.dll
- @wolftobias.native_window_msg
that creates windows, registers for USB device and logon/logoff notifications - @wolftobias.USER_INFO_10
structure from LMAccess.h
- @davidmc24.SHGetSpecialFolderPath()
and initialization file (.ini) API functions from kernel32.dll
- @headcrashing.CLSIDFromProgID()
- @headcrashing.RegisterWindowMessage()
and new wrapper User32Util
for convenient use of RegisterWindowMessage
, CreateWindow
and CreateWindowEx
- @headcrashing.StructureFieldOrderTest
unit test in platform project to run on Linux. - @bhamail.XEvents.getFieldOrder()
- @xwizard.LMAccess.GROUP_INFO_3.getFieldOrder()
to return correct fields names - @bhamail.getFieldOrder()
to return correct field names for some X11 structures - @bhamail.Class.forName("java.awt.Component")
(see here) - @twall.StructureFieldOrderInspector
unit test utility to scan for Structure
field issues; see: com.sun.jna.platform.StructureFieldOrderTest.testMethodGetFieldOrder
- @bhamail.StructureFieldOrderTest
unit test in platform project to run on Linux - @bhamail.moveToTrash()
on OSX to work with symlinks - @twall.Thread.getContextClassLoader()
returns null
- @twall.Netapi32Util.getDomainTrusts()
returns "empty" domain object - @aikidojohn.Netapi32.getDC()
- added missing fields in DOMAIN_CONTROLLER_INFO
- @aikidojohn.DLLCallback
to tag your Callback object - @twall.Structure.getFieldOrder()
supersedes Structure.setFieldOrder()
and is now required - @twall.~/Library/Frameworks
and /Library/Frameworks
on OSX - @shaneholloway.android-arm
target - @ochafik, @twall.jna.tmpdir
to override temporary JNA storage location - @twall.EXTRA_MAKE_OPTS
ant property to override make variables - @twall.Library.OPTION_OPEN_FLAGS
to customize dlopen behavior - @twall.Advapi32Util.registryGetValues()
tried to allocate memory for a zero-length REG_BINARY
value - @phailwhale22.Memory
field in structure - @twall.PointerType
fields on Structure.read()
if unchanged - @twall.Advapi32Util.registryGetValues()
when reading zero length values - @danwi.platform.win32.Kernel32.GetEnvironmentVariable
and platform.win32.Kernel32Util.getEnvironmentVariable
- @dblock.Kernel32.dll
function definitions from WinNT.java
into Kernel32.java
- @dblock.toPointer()
methods on all _PTR
types (platform win32) - @twall.ant -Dskip-native
to skip platform native build - @twall.ant -Dheadless=true
to run unit tests headless - @twall.ULONG_PTR
, UINT_PTR
, ULONGLONG
, WORD
, DWORDLONG
) - @twall.platform.win32.Netapi32Util.getDomainTrusts
- @dblock.struct**
arguments (array of struct pointers) - @twall.platform.win32.Secur32.AcquireCredentialsHandle
, InitializeSecurityContext
and AcceptSecurityContext
on Win32 64-bit - @dblock.char *
or wchar_t *
fields within structures when unmodified (similar to current operation with pointers) - @twall.platform.win32.DsGetDC.DS_DOMAIN_TRUSTS
and DsEnumerateDomainTrusts
on Win32 64-bit - @trejkaz.Netapi32Util.getDomainTrusts
- @trejkaz.platform.win32.W32FileMonitor
- @dblock.platform.win32.Shell32.ShellExecute
, since returning
HINSTANCE
is useless.Structure.clear()
always calls ensureAllocated()
to avoid NPE.Structure.useMemory()
, even if layout is not yet determined.platform.win32.User32
: GetLastInputInfo
.platform.win32.WinNT.GetFileType
and platform.win32.Kernel32Util.getFileType
.platform.win32.Kernel32Util
: getFileType
.REG_MULTI_SZ
values on Win32.USER_INFO_23
and GROUP_INFO_3
.Netapi32Util.getUserInfo
.jna.nosys=true
to avoid loading any system-provided JNA (useful for local build/development).jna.boot.library.name
system property.jna.nounpack=true
.platform.unix.x11
: XGrabKey
, XUngrabKey
, XSetErrorHandler
.platform.mac.Carbon
: GetEventDispatcherTarget
, InstallEventHandler
, RegisterEventHotKey
, GetEventParameter
, RemoveEventHandler
, UnregisterEventHotKey
.platform.win32.Kernel32
: CopyFile
, MoveFile
, MoveFileEx
, CreateProcess
, SetEnvironmentVariables
, GetFileTime
, SetFileTime
, SetFileAttributes
, DeviceIoControl
, GetDiskFreeSpaceEx
, CreateToolhelp32Snapshot
, Process32First
, Process32Next
.platform.win32.Msi
: MsiGetComponentPath
, MsiLocateComponent
, MsiGetProductCode
, MsiEnumComponents
.platform.win32.User32
: RegisterHotKey
, UnregisterHotKey
platform.win32.SetupApi
: SetupDiGetClassDevs
, SetupDiDestroyDeviceInfoList
, SetupDiEnumDeviceInterfaces
, SetupDiGetDeviceInterfaceDetail
, SetupDiGetDeviceRegistryProperty
.platform.win32.Shell32.ShellExecute
.platform.win32.User32
: SetParent
, IsWindowVisible
, MoveWindow
, SetWindowPos
, AttachInputThread
, SetForegroundWindow
, GetForegroundWindow
, SetFocus
, SendInput
, WaitForInputIdle
, InvalidateRect
, RedrawWindow
, GetWindow
, UpdateWindow
, ShowWindow
, CloseWindow
.platform.win32.Version
: GetFileVersionInfoSize
, GetFileVersionInfo
, VerQueryValue
.platform.win32.Advapi32
: GetFileSecurity
, RegQueryValueEx(...Long...)
.platform.win32.Netapi32
: NetUserGetInfo
.Memory
subclasses (jbellis).platform.win32.Advapi32.AdjustTokenPrivileges
, platform.win32.Advapi32.LookupPrivilegeName
, platform.win32.Advapi32.LookupPrivilegeValue
, platform.win32.Advapi32.ImpersonateSelf
.platform.win32.Advapi32.DuplicateTokenEx
, platform.win32.Advapi32.CreateProcessAsUser
, platform.win32.Kernel32.GetExitCodeProcess
, platform.win32.Kernel32.TerminateProcess
, platform.win32.Kernel32.ReadFile
, platform.win32.Kernel32.CreatePipe
, platform.win32.Kernel32.SetHandleInformation
and related constants / structures in platform.win32.WinBase
and platform.win32.WinNT
. Please note that the SECURITY_ATTRIBUTES
structure has been moved from platform.win32.WinNT
to platform.win32.WinBase
.platform.win32.Kernel32.DeleteFile
and platform.win32.Kernel32Util.deleteFile
.platform.win32.Kernel32.GetFileAttributes
and platform.win32.Kernel32Util.getFileAttributes
.platform.win32.Kernel32.GetTickCount
.platform.win32.Advapi32
.platform.win32.W32ServiceManager
and W32Service
.platform.win32.Advapi32
and platform.win32.Advapi32Util.EventLogIterator
.platform.win32.Advapi32Util.registryCreateKey
returns true
if key was created, false
if it already exists.REG_BINARY
, REG_EXPAND_SZ
and REG_MULTI_SZ
support to platform.win32.Advapi32Util
registry functions.com.sun.jna.Native
, to ensure that all dependent classes must be disposed before the Native
class is unloaded. Note that this change is incompatible with all previous JNA native libraries.platform.win32.Kernel32.GetNativeSystemInfo
and GetSystemInfo
AV on Win64.jna.library.path
property is now re-evaluated whenever a native library is loaded. Previously this value was cached when the JNA classes loaded.Native.loadLibrary
can now load .drv
files.com.sun.jna.platform.win32.WINBASE
into WinDef
, WinNT
and BaseTSD
, matching Windows SDK headers.com.sun.jna.platform.win32.GDI32
into WinGDI
, matching Windows SDK headers.com.sun.jna.platform.win32.User32
into WinUser
, matching Windows SDK headers.platform.win32.WinNT.LARGE_INTEGER
into a union.platform.win32.ObjBase
, com.sun.jna.platform.win32.Ole32.CoInitializeEx
, CoUninitialize
, and CoCreateInstance
.platform.win32.Oleaut32.SysAllocString
and SysFreeString
.platform.win32.Secur32.ImpersonateSecurityContext
and RevertSecurityContext
.platform.win32.WinNT.WELL_KNOWN_SID_TYPE
, SECURITY_MAX_SID_SIZE
and other related SID-related constants.platform.win32.Advapi32.CreateWellKnownSid
and IsWellKnownSid
and com.sun.jna.platform.win32.Advapi32Util.isWellKnownSid
.platform.win32.Kernel32.GetVersion
, GetVersionEx
, GetSystemInfo
, GetNativeSystemInfo
, GlobalMemoryStatusEx
, GetLogicalDriveStrings
and IsWow64Process
.platform.win32.Kernel32Util.getLogicalDriveStrings
.platform.win32.User32.GetSystemMetrics
.platform.win32.BaseTSD.DWORD_PTR
.platform.win32.WinBase.SYSTEM_INFO
and MEMORYSTATUSEX
.platform.win32.WinNT.OSVERSIONINFOEX
, VER
constants.platform.win32.WinDef.ULONGLONG
and DWORDLONG
.platform.win32.Shell32.SHGetDesktopFolder
(prep work for Com4JNA).platform.win32.Winspool.GetPrinterInfo
.platform.win32.WinspoolUtil.getPrinterInfo1
.platform.win32.GDI32.GetDeviceCaps
.platform.win32.GDI32.GetDIBits
.ClassCastException
in Structure.equals
(issue 152).NULL
(issue 151).UnregisterNatives
in native code (issue 154).read()
of uninitialized memory in platform.win32.Advapi32Util.getTokenGroups
and getTokenAccount
.com.sun.jna.platform.win32.Secur32.QuerySecurityContextToken
to take a CtxtHandle
instead of PSecHandle
.final
are never written.size_t
size.此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。