Mefistotelis Posted May 18, 2020 Report Share Posted May 18, 2020 The file @lordexod attached is extracted from 'lvserver.rsc'. And of course, pylabview can extract that as well, to pure XML. ie: <DNmsh> <!-- D. Name Strings List --> <Section Index="1" Name="Class ID" Int5="0x00000000" Format="inline"> <String>ClassID</String> </Section> <Section Index="2" Name="Owner (Deprecated)" Int5="0x00000000" Format="inline"> <String>Owner</String> </Section> <Section Index="3" Name="Owning VI" Int5="0x00000000" Format="inline"> <String>OwningVI</String> </Section> <Section Index="4" Name="Class Name" Int5="0x00000000" Format="inline"> <String>ClassName</String> </Section> <Section Index="5" Name="Modified" Int5="0x00000000" Format="inline"> <String>Modified</String> </Section> <Section Index="6" Name="Is On Block Diagram?" Int5="0x00000000" Format="inline"> <String>IsOnBD?</String> </Section> <Section Index="7" Name="Owner" Int5="0x00000000" Format="inline"> <String>Owner</String> </Section> <Section Index="8" Name="Delete" Int5="0x00000000" Format="inline"> <String>Delete</String> </Section> <Section Index="9" Name="Tag:Set Tag" Int5="0x00000000" Format="inline"> <String>SetTag</String> <String>TagName</String> <String>Value</String> <String>isPersistent</String> <String>OldValue</String> </Section> <Section Index="10" Name="Tag:Remove Tag" Int5="0x00000000" Format="inline"> <String>RemoveTag</String> <String>TagName</String> <String>OldValue</String> </Section> [...] Quote Link to comment
dadreamer Posted May 22, 2020 Report Share Posted May 22, 2020 (edited) Here are some "secret" INI keys related to CLFNs: extFuncGenNoWrapperEnabled=True - the most interesting one here; adds "Generate Wrapper" option to CLFN context menu (on by default). When this option is unchecked (off), LabVIEW doesn't generate the wrapper for DLL call, i.e. ExtFuncWrapper function is not called and the user's function is inlined into the VI code and called. This feature could slightly improve performance of external code communications, saving approx. 5 to 10 ms on each call. But you must be absolutely sure, that your CLFN is set correctly as no error checking is done in this case and any small mistake in the parameters leads to LV crash. There might be an indirect use of this feature, e.g. manual fine-tuning/debugging of some problematic function or a function with unclear parameters etc. When the option is enabled and extFuncShowMagic is set, CLFN is painted red. extFuncBreakOnGenNoWrapper=True - if enabled, disallows to run VI with CLFN's "Generate Wrapper" option unchecked. The Run arrow is broken and the error is stated as "Call Library Nodes with 'gen no wrapper' are not supported.". The error is detailed as "This Call Library Node is set to 'gen no wrapper'. This setting skips certain steps when calling DLLs in order to be faster, and can be dangerous.". extFuncShowMagic=True - adds some coloring to CLFNs, when "Generate Wrapper" and "Type Only Argument" options are used. extFuncExtendedOptionsEnabled=True - adds "Allow Sub-Arrays" option to CLFN context menu (off by default). I assume, it should have worked this way, but I have not found any signs that this feature is working at all. If I set "Constant" option, then a sub-array is passed into a function, else the whole array is copied and passed, no matter if "Allow Sub-Arrays" is set or not. Maybe I missed smth or it's a relic option from pre-LV2009 era... extFuncArgTypeOnlyEnabled=True - adds "Type Only Argument" option to CLFN context menu, when clicking on a node's terminal (off by default). When this option is checked, LabVIEW passes 0 (aka NULL) instead of a real value of the parameter, no matter if passed by value or by reference. When the option is enabled and extFuncShowMagic is set, the terminal is painted bluegreen (cyan). Any thoughts, what was it used for? Here's its scripting counterpart. allowPreallocsInDll=True - adds "Allow Preallocated Data" option to CLFN context menu, when clicking on a node's terminal (off by default). Did not study this one well, but it seems to not do anything or I'm wrong? Here's its scripting counterpart. callLibNodeMayHaveLVClassParams=True - if enabled, allows to run VI with LV class wire(s) passed into CLFN. By default the Run arrow is broken, when class wire is connected to CLFN. Interesting, but what can we do with it in the external code? AllowCLFNTakeSlice=True - on by default, even if absent in the .ini; appears to behave the way, that "Allow Sub-Arrays" option should do, when enabled. Let's say, some array slice (i.e., a sub-array) is passed into CLFN and the input parameter is configured as "Constant" -> "Array Data Pointer". When that .ini setting is on, no intermediate copy of the array is made, thus the called library receives a pointer to some location within the initial array. When the setting is off (AllowCLFNTakeSlice=False), then the sub-array is always copied and fed into the library, no matter if slice or not. This is the pic with some options activated: DbgPrintf.vi I also noticed that there are some private flag bits for CLFNs, e.g. extFuncVarArgs, extFuncParamsFromTL, extFuncNIValidated, extFuncTopLevelOnlyInUI. I believe, some bits should be available with scripting also. Var args feature looks interesting, but it's likely an abandoned thing, isn't it? AFAIK CLFNs never supported that in any manner. Finally some sort of off-topic, but somewhat related. Did you know that it's possible to create an input constant for CLFN's return terminal? Just set Return output as non-void and do a RMB click on the left terminal. The Run arrow is not broken and the VI runs fine. Ancient bug or intended for something? I've never seen that value being passed into external code in any ways. Edited June 8, 2020 by dadreamer adding more info 2 Quote Link to comment
Rolf Kalbermatter Posted May 22, 2020 Report Share Posted May 22, 2020 3 hours ago, dadreamer said: Did you know that it's possible to create an input constant for CLFN's return terminal? Just set Return output as non-void and do a RMB click on the left terminal. The Run arrow is not broken and the VI runs fine. Ancient bug or intended for something? I've never seen that value being passed into external code in any ways. There is no good reason why that should be forbidden. Without an input wired, LabVIEW will allocate the variable automatically (also true for normal parameters since around LabVIEW 6 or so. Before that LabVIEW required you to wire inputs no matter what). Otherwise it will reuse the one wired into the left terminal to store the result into. Useful? Not really but maybe it was left in as there is no harm done with it and someone might have figured out that it could be one day useful to reuse the passed in value to determine the data type (and possibly buffer size). Quote Link to comment
dadreamer Posted May 23, 2020 Report Share Posted May 23, 2020 On 5/22/2020 at 9:11 PM, Rolf Kalbermatter said: Before that LabVIEW required you to wire inputs no matter what I checked that in LabVIEW 3.1.1 and it doesn't require the Return input terminal to be connected to some constant. I also tried LabVIEW 3.0 and 2.5 but I don't see CLF Node there, only CIN, so can't check there. Got the same in LabVIEW 4.0 (in fact it's a demo version, but DLLs are callable). I still think, there's some sort of a bug, because in LabVIEW 7.1 and 8.0 when you created that unnecessary constant on the left, connected it to CLFN and changed the Return type back to void, the VI's Run arrow becomes broken. The same applies to the wire from the constant to CLFN. But in LabVIEW 2009 and higher the Run arrow is fine and LabVIEW allows to run the VI despite oddity with the CLFN (look at the image above). This is the screenshot from LV 8.0: Might be an omission when porting to the new managers interface?.. Quote Link to comment
Rolf Kalbermatter Posted May 23, 2020 Report Share Posted May 23, 2020 4 hours ago, dadreamer said: I checked that in LabVIEW 3.1.1 and it doesn't require the Return input terminal to be connected to some constant. I also tried LabVIEW 3.0 and 2.5 but I don't see CLF Node there, only CIN, so can't check there. I didn't mean to indicate that you had to wire the return value. I actually never even tried that as it seemed so out of touch with anything. What I do believe to remember however is that LabVIEW required you to wire the left side of parameters. However that's 20 years ago and it could just as well have been the CIN node. Much of the object handling for the CLN was inherited from the CIN node and there you don't have a return value. In fact I'm pretty certain that the return value of the CLN is basically simply a parameter as far as the node object is concerned, in order to be able to reuse much of the CIN node object handling. The fact that the first parameter is specifically reserved for the function return value is most likely mostly a special casing for the configuration object method and the run object method of the CLN. Most other methods it simply inherits from the common object ancestor for the CIN and the CLN. Quote Link to comment
ShaunR Posted May 24, 2020 Report Share Posted May 24, 2020 On 5/22/2020 at 1:54 PM, dadreamer said: Here are some "secret" INI keys related to CLFNs: extFuncGenNoWrapperEnabled=True - the most interesting one here; adds "Generate Wrapper" option to CLFN context menu (on by default). When this option is unchecked (off), LabVIEW doesn't generate the wrapper for DLL call, i.e. ExtFuncWrapper function is not called and the user's function is inlined into the VI code and called. This feature could slightly improve performance of external code communications, saving approx. 5 to 10 ms on each call. But you must be absolutely sure, that your CLFN is set correctly as no error checking is done in this case and any small mistake in the parameters leads to LV crash. There might be an indirect use of this feature, e.g. manual fine-tuning/debugging of some problematic function or a function with unclear parameters etc. When the option is enabled and extFuncShowMagic is set, CLFN is painted red. Interesting. How does this feature compare with disabling the error checking on the Error Checking tab? Quote Link to comment
dadreamer Posted May 25, 2020 Report Share Posted May 25, 2020 (edited) 13 hours ago, ShaunR said: Interesting. How does this feature compare with disabling the error checking on the Error Checking tab? Even when Error Checking is set to Disabled, LabVIEW still enters ExtFuncWrapper to do some basic checks before the target function is called. A few internal functions, such as _clearfp and _controlfp, are being called also. Thereby disabling "Generate Wrapper" option should make CLFN a little faster, than disabling Error Checking. You can take it like you're calling a built-in yellow node (not taking into account the called function's own speed, of course). I did not do concrete benchmarking to compare these two options. If there's an interest, I could check this out. Edited May 25, 2020 by dadreamer Quote Link to comment
ShaunR Posted May 25, 2020 Report Share Posted May 25, 2020 (edited) 9 hours ago, dadreamer said: Even when Error Checking is set to Disabled, LabVIEW still enters ExtFuncWrapper to do some basic checks before the target function is called. A few internal functions, such as _clearfp and _controlfp, are being called also. Thereby disabling "Generate Wrapper" option should make CLFN a little faster, than disabling Error Checking. You can take it like you're calling a built-in yellow node (not taking into account the called function's own speed, of course). I did not do concrete benchmarking to compare these two options. If there's an interest, I could check this out. No need. I will explore this. From experience; a misconfigured CLFN usually results in LabVIEW disappearing without a whimper (either immediately or at some random moment) so i don't see much of a reason to have error checking and wrappers enabled at all. Especially if there is a performance benfit, no matter how minute. It doesn't seem to have a scripting counterpart. Is that correct, or have I just missed it? Is the setting sticky, or does distributed source code require the INI setting too? Edited May 25, 2020 by ShaunR Quote Link to comment
Mefistotelis Posted May 25, 2020 Report Share Posted May 25, 2020 10 minutes ago, ShaunR said: From experience; a misconfigured CLFN usually results in LabVIEW disappearing without a whimper I'm seeing A LOT of these when re-creating Block Diagrams. It's like LV has no error support at all. If you enable 'dprintf' options in 'LabVIEW.ini', you can at least get some information about reason of the failure. Quote Link to comment
dadreamer Posted May 25, 2020 Report Share Posted May 25, 2020 (edited) 1 hour ago, ShaunR said: It doesn't seem to have a scripting counterpart. Is that correct, or have I just missed it? I browsed through all the properties and methods of Call Library object and didn't find such scripting analogue. Seems like VI Server doesn't expose that specific property. 1 hour ago, ShaunR said: Is the setting sticky, or does distributed source code require the INI setting too? Yes, like any other option, I mentioned above. Tried to open my DbgPrintf sample VI from another machine and all the parameters are in place. If you don't have extFuncGenNoWrapperEnabled=True and extFuncShowMagic=True in your .ini, then the option is "invisible" in the menu or on BD, but it's there. 🙂 Edited May 25, 2020 by dadreamer Quote Link to comment
Rolf Kalbermatter Posted May 27, 2020 Report Share Posted May 27, 2020 On 5/25/2020 at 6:21 PM, ShaunR said: No need. I will explore this. From experience; a misconfigured CLFN usually results in LabVIEW disappearing without a whimper (either immediately or at some random moment) so i don't see much of a reason to have error checking and wrappers enabled at all. Especially if there is a performance benfit, no matter how minute. It doesn't seem to have a scripting counterpart. Is that correct, or have I just missed it? Is the setting sticky, or does distributed source code require the INI setting too? Your experience seems quite different than mine. I get never the soundless plop disappearance, but that might be because I run my shared library code during debugging from the Visual C debug environment. But even without that, the well known 1097 error is what this wrapper is mostly about and that happens for me a lot more than a completely silent disappearence. Quote Link to comment
ShaunR Posted May 28, 2020 Report Share Posted May 28, 2020 (edited) 13 hours ago, Rolf Kalbermatter said: Your experience seems quite different than mine. I get never the soundless plop disappearance, but that might be because I run my shared library code during debugging from the Visual C debug environment. But even without that, the well known 1097 error is what this wrapper is mostly about and that happens for me a lot more than a completely silent disappearence. I haven't seen that error message for years. If I run a debugger, LabVIEW just dies and the debugger reports an error in the LabVIEw exe. This has been the same through Windows 7-10 on the various machines I've had over the years. Maybe the difference when debugging is because I use the the gdb debugger but the sudden disappearance is consistent; not only on my machines but customers' too. Edited May 28, 2020 by ShaunR Quote Link to comment
Rolf Kalbermatter Posted May 28, 2020 Report Share Posted May 28, 2020 12 minutes ago, ShaunR said: I haven't seen that error message for years. If I run a debugger, LabVIEW just dies and the debugger reports an error in the LabVIEw exe. This has been the same through Windows 7-10 on the various machines I've had over the years. Maybe the difference when debugging is because I use the the gdb debugger but the sudden disappearance is consistent; not only on my machines but customers' too. I use Visual Studio and launch LabVIEW from within Visual Studio to debug my DLLs and unless I quirk up something in kernel space somehow I always get into the Visual Studio Debugger, although not always into the source code, as the crash can be in one of the system DLLs. Quote Link to comment
Sparkette Posted October 1, 2020 Author Report Share Posted October 1, 2020 (edited) On 9/5/2014 at 1:08 PM, ned said: I really hope one of them has an exciting-sounding name, but actually just introduces random crashes. Hedge, is that you? 😉 EDIT: If you don't get it, just pretend I'm insane. On 5/22/2020 at 8:54 AM, dadreamer said: allowPreallocsInDll=True - adds "Allow Preallocated Data" option to CLFN context menu, when clicking on a node's terminal (off by default). Did not study this one well, but it seems to not do anything or I'm wrong? Here's its scripting counterpart. Have you tried passing it a preallocated string? preAllocateStringsUIEnabled=True preAllocateUIEnabled=True preAllocateEnabled=True Right-click string control/constant, Set String Size Edited October 2, 2020 by flarn2006 Quote Link to comment
dadreamer Posted October 2, 2020 Report Share Posted October 2, 2020 (edited) 13 hours ago, flarn2006 said: Have you tried passing it a preallocated string? I have not, but I just tried and saw no difference in passing strings into CLFN (no matter, if variable, bounded or fixed length). I think, it could be some archaic setting for early LVs before 2009. It even doesn't cause a VI to be recompiled unlike "Type Only Argument" option. It just adds 0x40000 to the flags field in the terminal's DCO properties. Having played with that flags field a little, I can conclude, that it affects IDE behaviour and the terminal look only (to accept some wire(s) or not), but has nothing to do with the compiled code execution. For example, with value of 0x30000 I'm getting this. 13 hours ago, flarn2006 said: preAllocateStringsUIEnabled=True preAllocateUIEnabled=True preAllocateEnabled=True Right-click string control/constant, Set String Size These tokens should be added to this thread for sure. Edited October 2, 2020 by dadreamer Quote Link to comment
jacobson Posted October 2, 2020 Report Share Posted October 2, 2020 On 10/1/2020 at 12:40 PM, flarn2006 said: Hedge, is that you? 😉 Pretty useful if you have hardware and really want to understand the effects of different failure modes. Quote Link to comment
Sparkette Posted October 3, 2020 Author Report Share Posted October 3, 2020 (edited) On 10/2/2020 at 3:05 AM, dadreamer said: I have not, but I just tried and saw no difference in passing strings into CLFN (no matter, if variable, bounded or fixed length). I think, it could be some archaic setting for early LVs before 2009. It even doesn't cause a VI to be recompiled unlike "Type Only Argument" option. It just adds 0x40000 to the flags field in the terminal's DCO properties. Having played with that flags field a little, I can conclude, that it affects IDE behaviour and the terminal look only (to accept some wire(s) or not), but has nothing to do with the compiled code execution. For example, with value of 0x30000 I'm getting this. These tokens should be added to this thread for sure. Oh, forgot I posted that thread. Thanks Edited October 3, 2020 by flarn2006 Quote Link to comment
Rolf Kalbermatter Posted October 3, 2020 Report Share Posted October 3, 2020 (edited) On 10/1/2020 at 7:40 PM, flarn2006 said: Hedge, is that you? 😉 EDIT: If you don't get it, just pretend I'm insane. Have you tried passing it a preallocated string? preAllocateStringsUIEnabled=True preAllocateUIEnabled=True preAllocateEnabled=True Right-click string control/constant, Set String Size They might actually be simply left overs from the LabVIEW developers before the Call Library Node gained the Minimum Size control for string and array parameters in LabVIEW 8.2. The old dialog before that did not have any option for this, so they might just have hacked it into the right click menu for testing purposes as that did not require a configuration dialog redesign, which might have been the main reason that this feature wasn't released in 8.0 (or maybe earlier already). There are many ini file settings that are basically just enablers for some obscure method to control a feature as it is still under development and once that feature is released the ini key does nothing or enable an option somewhere in the UI that is pretty much pointless now. Edited October 3, 2020 by Rolf Kalbermatter Quote Link to comment
Aristos Queue Posted September 26, 2022 Report Share Posted September 26, 2022 (edited) Just to close the loop: by LV2021, of the three of the Flarn-proof config tokens I mentioned in 2014, two are now public features and one was completely removed from the product as a bad idea. None of them are settable any more. I did not go out of my way to hide any new ones. Good game, Flarn. 🙂 I enjoyed the chase. Edited September 26, 2022 by Aristos Queue Quote Link to comment
hooovahh Posted September 27, 2022 Report Share Posted September 27, 2022 On 9/26/2022 at 11:14 AM, Aristos Queue said: Just to close the loop: by LV2021, of the three of the Flarn-proof config tokens I mentioned in 2014, two are now public features and one was completely removed from the product as a bad idea. None of them are settable any more. I did not go out of my way to hide any new ones. I'm going to guess interfaces, and sub VI call replacing (non class override through VIMs)? Was there a target specific structure teased or did I dream that? Quote Link to comment
dadreamer Posted September 28, 2022 Report Share Posted September 28, 2022 Yeah, it would be nice to finally see those mysterious tokens to confirm or refute our guesses 🙂 Quote Link to comment
dadreamer Posted August 15, 2023 Report Share Posted August 15, 2023 On 9/5/2014 at 5:16 AM, flarn2006 said: If they are read by the same internal "CfgGetDefault" function, my script can find them. Since LV 2021 hooking CfgGetDefault is not enough. There are two new classes in the mgcore library: LazyConfigValue_Bool32 and LazyConfigValue_PathRef. I assume, they're introduced for faster access to the token values. I always used good ol' WinAPIOverride by Jacquelin Potier to catch API calls (including LV ones), but now it seems that it lacks some necessary functionality (e.g., custom actions on a BP hit). So I decided to adapt that Lua script. LVEXEPath = "C:\\Program Files (x86)\\National Instruments\\LabVIEW 2023\\LabVIEW.exe" MGCore = "mgcore_SH_23_3.dll" FoundIt = false Tracing = false list = createStringlist() list.Sorted = true list.setDuplicates(dupIgnore) -- attach before any dynamically loaded modules, so break on EP (last arg) createProcess(LVEXEPath, "", true, true) CfgGetDefault = getAddress("LabVIEW.CfgGetDefault") debug_setBreakpoint(CfgGetDefault) LoadLibraryExA = getAddress("kernelbase.LoadLibraryExA") debug_setBreakpoint(LoadLibraryExA) function debugger_onBreakpoint() if EIP == CfgGetDefault then local tType = readString(ESP+4, 4) local size = readBytes(readInteger(ESP+8), 1, false) local token = readString(readInteger(ESP+8) + 1, size) local addr = readInteger(ESP+12) if (list.IndexOf(token) == -1) then list.add(token) print(string.format("%s (0x%X) [%s]", token, addr, tType)) end debug_continueFromBreakpoint(co_run) return 1 elseif EIP == LoadLibraryExA then local mod = readString(readInteger(ESP+4), 255) if (string.find(string.lower(mod),string.lower(MGCore))) then print("MGCore loaded") Tracing = true debug_continueFromBreakpoint(co_stepover) return 1 else debug_continueFromBreakpoint(co_run) return 1 end elseif EIP == mgc_f1 then --LazyConfigValue_Bool32::LazyConfigValue_Bool32 --print(getNameFromAddress(EIP)) local token = readString(readInteger(ESP+4), 50) if (list.IndexOf(token) == -1) then list.add(token) print(string.format("%s [Bool]", token)) end debug_continueFromBreakpoint(co_run) return 1 elseif EIP == mgc_f2 then --LazyConfigValue_PathRef::LazyConfigValue_PathRef --print(getNameFromAddress(EIP)) local token = readString(readInteger(ESP+4), 50) if (list.IndexOf(token) == -1) then list.add(token) print(string.format("%s [Path]", token)) end debug_continueFromBreakpoint(co_run) return 1 elseif EIP == mgc_f3 then --LazyConfigValue_Bool32::FindExposedValue --print(getNameFromAddress(EIP)) local token = readString(readInteger(ESP+4), 50) if (list.IndexOf(token) == -1) then list.add(token) print(string.format("%s [Bool]", token)) end debug_continueFromBreakpoint(co_run) return 1 elseif EIP == mgc_f4 then --LazyConfigValue_Bool32::operator bool --print(getNameFromAddress(EIP)) local token = readString(readInteger(ECX+4), 50) local tType = readString(ECX+8, 4) if (list.IndexOf(token) == -1) then list.add(token) print(string.format("%s (_) [%s]", token, tType)) end debug_continueFromBreakpoint(co_run) return 1 else if (Tracing) and (not FoundIt) then debug_continueFromBreakpoint(co_stepover) extra, opcode, bytes, addy = splitDisassembledString(disassemble(EIP)) RetFound = string.find(opcode, "ret") if RetFound then print(string.format("RET found as %s", opcode)) FoundIt = true Tracing = false debug_removeBreakpoint(LoadLibraryExA) reinitializeSymbolhandler(true) mgc_f1 = getAddress("mgcore_SH_23_3.LazyConfigValue_Bool32::LazyConfigValue_Bool32") debug_setBreakpoint(mgc_f1) mgc_f2 = getAddress("mgcore_SH_23_3.LazyConfigValue_PathRef::LazyConfigValue_PathRef") debug_setBreakpoint(mgc_f2) mgc_f3 = getAddress("mgcore_SH_23_3.LazyConfigValue_Bool32::FindExposedValue") debug_setBreakpoint(mgc_f3) -- ! USE WITH CAUTION -- This func is called THOUSANDS of times -- LV becomes lagging and badly responsive mgc_f4 = getAddress("mgcore_SH_23_3.LazyConfigValue_Bool32::operator bool") debug_setBreakpoint(mgc_f4) return 1 end else debug_continueFromBreakpoint(co_run) return 1 end end end Not that I'm a big fan of scripting languages, plus Lua in CE acts odd sometimes, so this script is far away from ideal. It also hooks only a few LazyConfigValue functions as the rest doesn't really matter. Now here's what I've got. Launching LabVIEW: Quote ReportErrorsInCloseRefnumPre21 [Bool] useFasterSafeArrayAccess [Bool] DotNetAssemblyGeneration.UseClusterFieldNames [Bool] GVariantTDR.AllowVariantsWithPlaceholders [Bool] DETT.DumpInformationalMessages [Bool] RefObject.ValidityChecker.LogOnly [Bool] RefObject.CheckRefObjListSortedAndLog [Bool] NewAppBuilderCache.Enabled [Bool] NewAppBuilderCache.Forced [Bool] NewAppBuilderCache.AssertionsEnabled [Bool] NewAppBuilderCache.LEIFLibraryCachingEnabled [Bool] NewAppBuilderCache.LEIFVICachingEnabled [Bool] UseModdateToCheckSourceChanges.Enabled [Bool] PrepContextLoadedFromCacheCheck.Enabled [Bool] AppBuilder.ExportAlwaysIncludedItemsFromPPL [Bool] NewAppBuilderCache.AdditionalSanityChecks [Bool] NewAppBuilderCache.AdditionalTDNameSanityChecks [Bool] NewAppBuilderCache.FixTypesDuringBuild [Bool] Compiling.SkipCompileWhenNothingNeedsCompile [Bool] LVAddons.Enabled [Bool] CrossLoad.EnableRegisterLoadInProgress [Bool] TargetClassConfiguration.AlternateLibrariesConstru [Bool] TargetClassConfiguration.EnableDebugging [Bool] TargetExecBehavior.PrintPaths [Bool] ErrorInfo.ForceDWarnWhileUnattended [Bool] useTempBundleReplacement [Bool] MassCompile.LogBrokenVIErrors [Bool] CheckForNonMergedTunnels [Bool] DoubleClickWhenWiringCreation [Bool] Wiring.AggressiveDispose [Bool] SignalBPBreakAtNextNodeIfInSameClump [Bool] SignalBPBreakOnlyOnce [Bool] StepInWithHierarchicalHiliting [Bool] BreakpointMgr.SanityCheck.enabled [Bool] BreakpointMgr.showDebuggingConfigOptions [Bool] extFuncBreakOnGenNoWrapper [Bool] extFuncShowMagic [Bool] PythonNode.PythonObjectSupport [Bool] LVCompare.FuzzyUIDMatch [Bool] LVCompare.MatchUIDs [Bool] LiveMakeSpace [Bool] LiveGrow [Bool] LiveSelection [Bool] LiveDrag [Bool] DragAutoWire [Bool] GreedyRightToLeftSelection [Bool] EnableMS2016AccessProviderSupport [Bool] TurnOffAfterProbesOnReturn [Bool] Compiling.SkipCompileBeforeSaveAll [Bool] FeatureToggle.Editor.OpenUsesDocDirectory [Bool] SmoothLineDrawing [Bool] print.drawConsistentCrossHatching [Bool] StatePanel.Flat [Bool] StatePanel.TestAlternateResetButton [Bool] ButtonBar.SuppressContinuousRunButton [Bool] ExportVIStringsUTF8 [Bool] CachePseudoPathsOnRT [Bool] CallVIEntryPoint.PrintCalls [Bool] DragAdjustWires [Bool] VectorAST.visual.enable [Bool] ShowWireAddressMode [Bool] modernWireHover [Bool] VILoad.LocationLogging [Bool] Compiling.SkipVICompileOnOpen [Bool] ShowDeferDecisionDialog [Bool] BrokenVI.ShouldDWarn [Bool] BrokenVI.HeapObj.PrintHeapCheck [Bool] Linker.NotifyOnMissingExtFunc [Bool] ObjectManager.ShowDeprecated [Bool] shouldFixVIToPrivDataControlLinks [Bool] LoadPanel.allowIgnoreRNotFound [Bool] disableDialogVIsAndLatchButtonsForAutomation [Bool] RunWhenOpened.ConstrainEverywhere [Bool] FeatureToggle.Editor.ProjectSaveVersion [Bool] Project.DoNotSortProjectsDuringSaveLoad [Bool] PythonNode.UsePythonExecutable [Bool] FPProtocol.EnableMessageLog [Bool] FPProtocol.PrintContextOnConnect [Bool] useFPObserverCache [Bool] DPrintCallCountChanges [Bool] VIServer.Server.AlwaysPostDestroy [Bool] AsyncRefs.Debug [Bool] AppBuilder.AlwaysCheckAccessorVITypes [Bool] ZoomToggleAnimates [Bool] FeatureToggle.Editor.Zoom [Bool] Editor.Zoom.BlockDiagram.Enabled [Bool] Editor.Zoom.MouseWheelGestureRequireShift [Bool] FasterTestSetInsert [Bool] IsValidVI.ReportTimings [Bool] useRangesForCloneNumber [Bool] i386_CacheAlign (0x5A60A0D) [I32 ] ImageDrawingUsesGDIP [Bool] allowMultipleInstances (0x4FF1C8) [Bool] mergeAdjVirtualAllocs (0x4FF1C8) [Bool] memoryChecking (0x4FF1C4) [Bool] CheckHighWaterMarks (0x4FF1C0) [Bool] DWarnOnOutOfMemory (0x4FF1BC) [Bool] debugging (0x38EEEE8) [Bool] debugkeys (0x38EEEEC) [Bool] Invert3DPictImage (0x3820690) [Bool] ole.AuthnLevel (0x4FF1C4) [I32 ] ole.ImpLevel (0x4FF1C8) [I32 ] useLocaleDecimalPt (0x38F01E4) [Bool] WindowsThemeChangeCompletionTimeoutInSeconds (0x381FAEC) [I32 ] useUnicode (0x4FF0B0) [Bool] enableHorizontalScrollWheel (0x38EEEC0) [Bool] useTaskBar (0x38F0204) [Bool] hideRootWindow (0x4FF1B8) [Bool] DontUseAltTab (0x4FF1AC) [Bool] throttleColorDepthCalls (0x381FE50) [Bool] enableThrottleDPrintfs (0x38EE768) [Bool] useMaskBlit (0x4FF194) [Bool] useAlphaBlend (0x4FF190) [Bool] WindowsLongPaths (_) [Bool] DWarnLogPath (0x4FED9C) [Path] DPrintfToFile (0x4FED98) [Bool] DebugDlgSkipList (0x5B764B4) [CPSt] DebugLogSkipList (0x5B764B4) [CPSt] MaxDWarnsLogged (0x378F170) [I32 ] NIERMaxDWarnDumps (0x378F14C) [I32 ] MaxDPrintfsLogged (0x378F174) [I32 ] MaxDDumpsLogged (0x378F178) [I32 ] DAbortDialog (0x378F130) [Bool] promoteDWarnInternals (0x4FEFCC) [Bool] DWarnDialog (0x378F120) [Bool] DWarnLogging (0x378F128) [Bool] DPrintfLogging (0x378F12C) [Bool] DWarnDialogMultiples (0x378F124) [Bool] neverShowLicensingStartupDialog (0x4FE138) [Bool] XNodeDevelopment_LabVIEWInternalTag (0x5E40160) [Bool] FPUpdateRate (0x378BB48) [I32 ] ZCompressLevel (0x378BEBC) [I32 ] DebugPathRef (0x4FE508) [Bool] UTF8Paths (0x4FE510) [Bool] DefaultDataFileLocation (0x5A00800) [Path] libdir (0x5A00818) [Path] rviDir (0x5A00840) [Path] examplesDir (0x5A00850) [Path] UserDefinedErrorsDir (0x5A00860) [Path] HiliteExecutionWhosePride (0x5A00868) [Path] defaultdir (0x5A00870) [Path] LVComponentLocationInfoDir (0x5A00890) [Path] tmpdir (0x5A008A8) [Path] UsePublicCacheForInstCache (0x37AFEB8) [Bool] PseudoPathRemappingsFilePath (0x4FE468) [Path] ServiceLocator.LazyInit (0x4FE47C) [Bool] serviceLocatorTimeout (0x4FE430) [I32 ] DNSLookupEnabled (0x3820770) [Bool] SocketSetReuseAddr (0x38F050C) [Bool] SocketSetReusePort (0x3820778) [Bool] SocketListenBacklog (0x382077C) [I32 ] SocketSendBufferSize (0x3820780) [I32 ] SocketRecvBufferSize (0x3820784) [I32 ] SocketSendChunkSize (0x3820788) [I32 ] IsolateListenerAccept (0x38F0510) [Bool] netconn (0x4FE178) [Bool] Max_Sockets (0x38218E4) [I32 ] hierarchy.stateFlags (0x37A9880) [I32 ] HierStateEdgeStyle (0x37A988C) [I32 ] HierarchyWindow.ShowPrivateApp (0x3881B30) [Bool] ReportMovingVIs (0x37B8558) [Bool] ReportMovingVILibVIs (0x3897114) [Bool] RelaxQualifiedNameMatching (0x3897118) [Bool] ReportExtLibCrossLink (0x3891B9C) [Bool] LVAddons.CustomLocation [Path] LVTargets (0x6B8AA10) [Path] LocalHost.LibraryPaths (0x4FE08C) [PRfL] server.tcp.port (0x4FE454) [I32 ] useXPFontsOnVista (0x38F0238) [Bool] FontCodePageList (0x5B76734) [CPSt] hardCodeFontNames (0x38F0240) [Bool] hardCodeFontSizes (0x38F023C) [Bool] TTFontSmallerMultiplier (0x381FF2C) [F32 ] BitmapFontSmallerMultiplier (0x381FF30) [F32 ] allowSetUnicodeStyle (0x38EEF30) [Bool] forceCharSetMapping (0x381FF28) [I32 ] pretendToUseCyrillicScript (0x38EEF40) [Bool] ForceCodePageMapping (0x38EEF4C) [I32 ] appFont (0x38F01C8) [Font] systemFont (0x38F01D0) [Font] dialogFont (0x38F01CC) [Font] UDRefnumDataIsCookie (0x3873E8C) [Bool] RTUseMutexOptimizations (0x38BF9C0) [Bool] RTMutexOptTableWidthLog2 (0x37B8F0C) [Bool] RTMutexOptTableHeightLog2 (0x37B8F10) [Bool] checkAvailDiskSpace (0x3881E06) [Bool] warnMin (0x3881E0E) [I32 ] abortMin (0x3881E0A) [I32 ] FlatLibChain (0x378E544) [Bool] usePaletteMenuOnMenuBar (0x38821C6) [Bool] RemotePanel.ServerTimeoutInSecs (0x38C9360) [I32 ] RemotePanel.MaxMsgBacklog (0x38C9364) [I32 ] RemotePanel.NetloadLogInterval (0x38C936C) [I32 ] RemotePanel.NetloadLogNumOfSamples (0x38C9370) [I32 ] RemotePanel.VIControlTimeLimit (0x38C937D) [I32 ] RemotePanel.InactivePingTimeout (0x38C9385) [I32 ] RemotePanel.InactiveCloseTimeout (0x38C9389) [I32 ] RemotePanel.InactiveTimeoutEnabled (0x38C9381) [Bool] VisaSelectionIndex (0x37BC024) [I32 ] doObjPathChecking (0x3882416) [Bool] simplePopups (0x3881EE6) [Bool] dithering (0x38F01C4) [Bool] independentImageDepth (0x38F0208) [I32 ] LVdebugKeys (0x38EEEEC) [Bool] KeepCodeStreamsForHeapPeek (0x387B408) [Bool] useWindowMenuBars (0x38053F8) [Bool] tileUpDown (0x3881E3A) [Bool] paintPixmap (0x3881E3E) [Bool] openInRun (0x3881E42) [Bool] useNativeColorPicker (0x37A2B60) [Bool] imagesCompressedInMem (0x38F2D68) [Bool] lvPictImagesSavedCompressed (0x3821018) [Bool] noBoxAroundName (0x3881E46) [Bool] transparentBDLabels (0x3881E4A) [Bool] transparentBDFreeLabels (0x38826DE) [Bool] copyDeleteFPDCOFromFPTerm (0x3881E76) [Bool] ctlEditNoQuestions (0x3884598) [Bool] doubleClickToEditControl (0x3881E16) [Bool] HiddenControlsVisibleWhileEditing (0x4FDF98) [Bool] LastErrorListSize (0x4FE42C) [Rect] overanxiousMemoryDeallocation (0x3881E1E) [Bool] showWireDots (0x3881E22) [Bool] nodeBreakPointMenuItem (0x4FE438) [Bool] nodeBreakPointGenCode (0x4FE438) [Bool] offscreenUpdates (0x3881E1A) [Bool] honorOffScreenSettings (0x37AA578) [Bool] scrollingStripCharts (0x38C354C) [Bool] keepIntensityBitmap (0x38C3550) [Bool] windowSize (0x3881DB8) [Rect] diagram.background (0x3881D94) [Colr] diagram.primColor (0x3881D84) [Colr] coercionDot (0x3881D9C) [Colr] sourceCoercionDot (0x3881DA0) [Colr] sourceUserCoercionDot (0x3881DA4) [Colr] panel.background (0x3881D90) [Colr] execPalette.foreground (0x3881DA8) [Colr] execPalette.background (0x3881DAC) [Colr] cursor.foreground (0x38F00E4) [Colr] cursor.background (0x38F00E8) [Colr] scrollbar.foreground (0x38F01AC) [Colr] scrollbar.background (0x38F01A8) [Colr] returnKeyAction (0x3881E12) [Bool] showWarnings (0x3881DF6) [Bool] showVILibWarnings (0x3881DFE) [Bool] simpleDiagramHelp (0x3881E62) [Bool] MaxHelpDescLength (0x3882676) [I32 ] prettyExecHilite (0x3881DCA) [Bool] autoProbe (0x3881DCE) [Bool] reqdTermsByDefault (0x38826EE) [Bool] useAllFKeys (0x38F01E0) [Bool] history.alwaysRecordChange (0x3881E26) [Bool] history.promptAtClose (0x3881E2A) [Bool] history.promptAtSave (0x3881E2E) [Bool] history.generateComments (0x3881E32) [Bool] history.whereToGetName (0x5B76774) [PStr] showEmptyHistoryEntries (0x3881E4E) [Bool] titlebarRevision (0x3881E52) [Bool] showSubVIName (0x3881E72) [Bool] showBDConstName (0x3881E92) [Bool] useNewPrintHeader (0x3881E96) [Bool] skipNavigatorDialog (0x3881EB6) [Bool] hotMenus (0x38F01E8) [Bool] dropThroughClicks (0x38F01EC) [Bool] hour24 (0x38F01F0) [Bool] dateDayFirst (0x38F01F4) [Bool] yearFirst (0x38F01F8) [Bool] timeSeparator (0x38F01FC) [I32 ] dateSeparator (0x38F0200) [I32 ] blinkSpeed (0x3881E6E) [I32 ] blinkFG (0x3881E66) [Colr] blinkBG (0x3881E6A) [Colr] showTipStrings (0x3881E82) [Bool] showTipStringsOnDiagram (0x3881E8A) [Bool] showTipStringsOnTerms (0x3881E7E) [Bool] showWireGuides (0x3881E8E) [Bool] showTipStringsOnFPControls (0x3881E86) [Bool] playAnimatedImages (0x38F0228) [Bool] MinMNGFrameDelay (0x4FE434) [I32 ] maxUndoSteps (0x3881EA2) [I32 ] confDiagEnabled (0x3881EA6) [Bool] preAllocateEnabled (0x3881EAA) [Bool] inlineSubVIEnabled (0x3881EAE) [Bool] mutateToPeriodDecimalPoint (0x3881EBE) [I32 ] readOnlyLock (0x3881EDE) [Bool] NoSavePromptForReadonlyLocked (0x3881EE2) [Bool] disableMenuEffects (0x38F020C) [Bool] enableShellExtension (0x38F0210) [Bool] EnableCursorScaling (0x38F0254) [Bool] UseMarketingSplash (0x388262E) [Bool] SimShowCompanionDiag (0x3882436) [Bool] DebugSimScripting (0x388243A) [Bool] DropSubsystemsAsXNode (0x388243E) [Bool] preloadSimScriptingVIs (0x3882442) [Bool] ExecEngineSelectPrompt (0x3881F26) [Bool] ExecHiliteTracing (0x388200A) [Bool] HiliteExecutionPride (0x388200E) [Bool] viTitleInPalettes (0x3881EC6) [Bool] viCaptionTipStrings (0x3881ECA) [Bool] RTTarget.IPAccess (0x5B7677C) [CPSt] RTTarget.ApplicationPath (0x6B8B308) [Path] RTTarget.VIPath (0x6B8B318) [Path] SnapGridShowsOnFrontPanel (0x3882016) [Bool] SnapGridSnapsOnFrontPanel (0x388201A) [Bool] SnapGridFrontPanelSize (0x388201E) [I32 ] SnapGridFrontPanelContrast (0x3882022) [I32 ] SnapGridShowsOnBlockDiagram (0x3882026) [Bool] SnapGridSnapsOnBlockDiagram (0x388202A) [Bool] SnapGridBlockDiagramSize (0x388202E) [I32 ] SnapGridBlockDiagramContrast (0x3882032) [I32 ] SnapGridDrawAsLines (0x3882036) [I32 ] SnapGridDrawLinesAndDots (0x38C0F70) [Bool] SnapGridMinorDivsInMajor (0x37BB3D8) [I32 ] SnapGridResizeWhenDropping (0x388203A) [Bool] defaultControlStyle (0x38821AE) [I32 ] PolySelectorEnabledAtDrop (0x38821B2) [Bool] DbgSkipAssertIdentsAndVIsMatch (0x3804234) [Bool] LVClassOutputsDynamicByDefault (0x37BC5F0) [Bool] ShowRedXOnWire (0x3881EB2) [Bool] UnitDialogGroups (0x388204A) [Bool] DisableTargetSyntaxChecking (0x3882042) [Bool] RTTarget.LaunchAppAtBoot (0x3881F62) [Bool] RTTarget.EnableFileSharing (0x3881F6A) [Bool] viSearchPath (0x5B7678C) [PLst] editRecentPaths (0x5B76790) [PLst] execRecentPaths (0x5B76798) [PLst] RecentFiles.showFullPath (0x4FDF98) [Bool] RecentFiles.maxNum (0x5A660A0) [I32 ] RecentFiles.pathList (0x5A66084) [PRfL] RecentFiles.projectPathList (0x5A66094) [PRfL] formulaBoxPrecision (0x5B767A0) [PStr] flushDrawing (0x3881DC6) [Bool] suppressPopups (0x3881F4E) [Bool] find.findTextFlags (0x4FDF94) [I32 ] find.viListFlags (0x3881AF0) [I32 ] find.nodeRsrcID (0x4FDF98) [I32 ] find.searchStr (0x5B767A0) [PStr] diff.tileVert (0x4FDF98) [Bool] diff.circles (0x4FDF98) [Bool] firstDiffMonitor (0x4FDF94) [I32 ] secondDiffMonitor (0x4FDF94) [I32 ] diff.showMatches (0x3881E9A) [Bool] useNativeFileDialog (0x3881E7A) [Bool] editRTMenusFromRsrc (0x3881E9E) [Bool] unattended (0x3891C7C) [Bool] FPFont (0x4FDF80) [Font] BDFont (0x4FDF80) [Font] IconFont (0x4FDF7C) [Font] SuperSecretPrivateSpecialStuff (0x38BFA3C) [Bool] SuperSecretListboxStuff (0x3881FEE) [Bool] EnableStrictTypedefConstantConfiguration (0x38825F6) [Bool] editor.liveUpdates (0x3881F2A) [Bool] editor.smartWiring (0x3881F2E) [Bool] menu.foreground (0x38F01B4) [Colr] trackTimeout (0x38F01DC) [I32 ] menu.background (0x38F01B0) [Colr] menubar.foreground (0x38F01BC) [Colr] menubar.background (0x38F01B8) [Colr] scrollGraphCursors (0x37BB1EC) [Bool] smoothGraphMarkers (0x3881EEE) [Bool] enableAutoScales (0x379C360) [Bool] enableMultiScales (0x379C35C) [Bool] enableAutoWire (0x3881F6E) [Bool] autoWireMax (0x3881F72) [I32 ] autoWireMin (0x3881F76) [I32 ] coerceFromVariant (0x3881F46) [Bool] funkyErrClustWire (0x3881F4A) [Bool] autoTool (0x3881F7A) [Bool] autoTool.wireWires (0x3881F7E) [Bool] autoTool.allowLabelOnFP (0x3881F82) [Bool] autoTool.allowLabelOnBD (0x3881F86) [Bool] autoTool.changeBoolValsOnFP (0x3881F8A) [Bool] autoTool.changeBoolValsOnBD (0x3881F8E) [Bool] autoTool.changeNumValsOnFP (0x3881F92) [Bool] autoTool.changeNumValsOnBD (0x3881F96) [Bool] autoTool.doubleClickLabels (0x3881F9A) [Bool] FancyFPTerms (0x3881F9E) [Bool] showDatatypeOnFancyTerms (0x3881FA2) [Bool] growSubVI.enabled (0x3881FA6) [Bool] growSubVI.defaultStyle (0x3881FAA) [I32 ] allowOpenFPOfInstanceVIs (0x3881FAE) [Bool] allowStaticVIRefInstanceDragDrop (0x3881FB2) [Bool] showFullPathOfInstanceVIs (0x3881FB6) [Bool] dontGiveInstanceVIsTitles (0x3881FBA) [Bool] expressLeaveWizardsOpenAfterLaunch (0x3881FBE) [Bool] LaunchConfigurationPageAfterDropExpressBlock (0x3881FC2) [Bool] EnableAutomaticErrorHandling (0x38823EE) [Bool] EnableAutomaticErrorHandlingRT (0x38823F2) [Bool] UseAbridgedMenus (0x38F0214) [Bool] StructuresAutoSizeByDefault (0x3881FCA) [Bool] structuresFadeToDiagramBeneath (0x3881FCE) [Bool] controlPropertyPages (0x3881FD2) [Bool] usePropPageForFormatting (0x3881FD6) [Bool] showDefaultErrorHandlingDebugBtn (0x3881FDA) [Bool] autoInsertFeedbackNode (0x3881FDE) [Bool] graphReadsAttributes (0x3881FE2) [Bool] defaultErrorHandlingForNewVIs (0x3881FC6) [Bool] requireAutoTool (0x3881FE6) [Bool] quickMenuProperties (0x3881FEA) [Bool] smartProbesEnabled (0x3881FF2) [Bool] closeConfVIOnBDClose (0x3881FF6) [Bool] drawFPTermArrow (0x3881FFA) [Bool] showConfVIFrontPanel (0x3881FFE) [Bool] allowNoLockingForEvents (0x3882002) [Bool] autoRouteWires (0x388204E) [Bool] WireRouteTime (0x3882052) [I32 ] preAllocateUIEnabled (0x3882056) [Bool] autoPreallocate (0x388205A) [Bool] DefaultPingDelay (0x388205E) [I32 ] DefaultPingTimeout (0x3882062) [I32 ] ExternalNodesEnabled (0x3882066) [Bool] ExternalNodeDebugging (0x388206A) [Bool] XNodeWizardMode (0x38825D2) [Bool] allowBrokenForeverAbsolution (0x38825D6) [Bool] DisableLazyLoadXNode (0x38825DA) [Bool] ForceLazyLoadXNode (0x38825DE) [Bool] TestXNodesReentrant (0x38825E2) [Bool] TestXNodesSharedReentrant (0x38825E6) [Bool] XTraceAll (0x388268A) [Bool] XTraceXNode (0x388268E) [Bool] CacheMyDrift (0x3882692) [Bool] AllowPPLMemberVIsToCompile (0x3882696) [Bool] FindSpaceOnCreate (0x3882406) [Bool] FindSpaceCreateZone (0x388240A) [I32 ] paletteAsyncLoad (0x3882076) [Bool] AssistantsUseStrictTypes (0x388207A) [Bool] debugVHDL (0x388207E) [Bool] paletteLazyLoad (0x3882082) [Bool] addBulletCastInWDTMutation (0x3882086) [Bool] InternetToolkitInstalled (0x388208A) [Bool] LoadGWSAtStart (0x388208E) [Bool] ShowGWS (0x3882092) [Bool] showNoNavDialog (0x3882196) [Bool] compileOptimizeFlags (0x388219E) [I32 ] int64Enabled (0x38821A2) [Bool] IsFirstLaunch (0x38821AA) [Bool] ActiveXContainerDefaultInDesignMode (0x38821B6) [Bool] ActiveXMoreContainerOptions (0x38821BA) [Bool] ActiveXPropertyBrowser.AutoHide (0x38F0234) [Bool] useIPInfoInLVEmbedded (0x38821BE) [Bool] useOldLibInterfaceInLVEmbedded (0x38821C2) [Bool] UnwiredRecomendedWarning (0x38821CA) [Bool] ListboxSelectionStyle (0x5B767A0) [PStr] ListboxSelectionVersion (0x5B767A0) [PStr] serviceLocatorEnabled (0x38821D2) [Bool] serviceLocatorLocalOnly (0x38821D6) [Bool] helpServerEnabled (0x38821DA) [Bool] numStatusItemsToLog (0x38821DE) [I32 ] statusLogPath (0x5A008C0) [Path] allowPreallocsInDll (0x38821E6) [Bool] AllowManualLoadUnloadCvtFile (0x3884588) [Bool] UseDefaultNumDisplayFormat (0x38821EA) [Bool] defaultIndicatorFormat (0x5B767A0) [PStr] defaultControlFormat (0x5B767A0) [PStr] AllowRunTimeFontChangeOnPaste (0x38823F6) [Bool] EnableTimedLoops (0x38823FE) [Bool] nonDirectionalSignals (0x388240E) [Bool] typeDefExternalSignals (0x3882412) [Bool] EnableTimeDataNodeHiddenElements (0x388241A) [Bool] suppressFileDlgForMissingVIs (0x3882422) [Bool] pinPlotLegendLeft (0x3882426) [Bool] preAllocateStringsUIEnabled (0x388242A) [Bool] PumpOSMsgsinCallback (0x388242E) [Bool] VirtualProtectGeneratedCode (0x388244E) [Bool] UseBitmapClipboard (0x3882452) [Bool] stressCompactObjHeap (0x388261A) [Bool] launchNewWorkspaceOnStart (0x3882466) [Bool] enableVIBasedProviders (0x3882702) [Bool] disableCrossLinkWarningDlgs (0x388273E) [I32 ] promptToSaveNewProjects (0x3882742) [Bool] projectInternalOptions (0x388246A) [I32 ] NitPickCntxtRefs (0x4FE43C) [Bool] moveDefaultContextVIsToProjContext (0x4FE468) [Bool] useSingleTree (0x4FE468) [Bool] disableBatchAdd (0x4FE468) [Bool] createDefaultProject (0x4FE468) [Bool] addProjectOptionsToFileNewDlg (0x4FE468) [Bool] projectDebugPumpOSMsgs (0x4FE468) [Bool] populateLibs (0x4FE468) [Bool] editInMultipleContexts (0x38825EA) [Bool] autoDeployOnVIRun (0x3882602) [Bool] ShowPathInProjectWindow (0x38825F2) [Bool] showExePathInWindowTitle (0x3882462) [Bool] skipAllLaunchVIs (0x3882802) [Bool] SnapToPresetsFP (0x3882472) [Bool] SnapToPresetsBD (0x3882476) [Bool] DefaultLabelLockFP (0x388247A) [Bool] DefaultLabelLockBD (0x388247E) [Bool] DefaultLabelPositionFP (0x3882482) [I32 ] DefaultLabelPositionBD (0x3882486) [I32 ] ShowProjectsInSeparateList (0x38829B2) [Bool] UndoAfterSave (0x38829B6) [Bool] AlwaysShowConnectorPane (0x38829BA) [Bool] AllowSlicesIntoBundles (0x3882A8E) [Bool] AllowSlicesIntoBundleBorderNode (0x3882A92) [Bool] sourceOnlyDefaultForNewVIs (0x38829CE) [Bool] sourceOnlyTransactionFrequency (0x38829D2) [I32 ] CustomShortcuts (0x5B767A4) [ECPS] AllowDeprecateUDProps (0x388245E) [Bool] AllowUDPropRerunAsDefaultValue (0x388245A) [Bool] PlotHitThreshold (0x3882432) [I32 ] SortPaletteItems (0x388246E) [Bool] FXPDefaultWordLength (0x388248A) [I32 ] FXPDefaultIntWordLength (0x388248E) [I32 ] FXPDefaultSigned (0x3882492) [Bool] ClassBrowserEnabled (0x3882496) [Bool] SCCProjectName (0x388249A) [LStr] SCCLocalPath (0x5A00910) [Path] SCCConfigData (0x38824A2) [LStr] SCCProviderName (0x38824A6) [LStr] SCCProviderLocation (0x38824AA) [LStr] SCCDisplayOnlySelected (0x38824AE) [Bool] SCCSelectHierarchyWhenAdd (0x38824B2) [Bool] SCCSelectCallersWhenCheckedOut (0x38824B6) [Bool] SCCDisplayWarningIfCheckedOut (0x38824BA) [Bool] SCCUseDialogBox (0x38824BE) [Bool] SCCPromptToCheckOut (0x38824C2) [Bool] SCCPromptToAddToProject (0x38824C6) [Bool] SCCPromptToAddToAddSubVIs (0x38824CA) [Bool] SCCIncludeVILibInGetDependents (0x38826A6) [Bool] SCCIncludeInstrLibInGetDependents (0x38826AA) [Bool] extFuncGenNoWrapperEnabled (0x38825FA) [Bool] extFuncExtendedOptionsEnabled (0x38825FE) [Bool] extFuncArgTypeOnlyEnabled (0x3882B2A) [Bool] NISecurityTimeout (0x3882606) [I32 ] keyboardAccelerateSave (0x388260A) [Bool] DontShowProjectRemoveDialog (0x388260E) [Bool] DontShowProjectRemoveDialogNonFile (0x3882612) [Bool] DontShowProjectAddDialog (0x3882636) [Bool] DontShowProjectAddDialogDoNotAdd (0x388263A) [Bool] DontShowProjectAddDialog2 (0x388263E) [Bool] security.loginMode (0x388261E) [Bool] security.keyboardACL (0x3882622) [LStr] security.SVELoginMode (0x388267A) [Bool] security.SVEUsername (0x388267E) [LStr] security.SVEDomain (0x3882682) [LStr] RunWhenOpened.Behavior (0x3882B4A) [I32 ] asynchWiresEnabled (0x3882642) [I32 ] recursiveTypesEnabled (0x388269E) [Bool] subTypeSubVIInputsEnabled (0x388219A) [I32 ] AutoSaveEnabled (0x3882646) [Bool] AutoSaveTimerEnabled (0x388264E) [Bool] AutoSaveTimeoutMinutes (0x388264A) [I32 ] keepDotNetDomainAlive (0x3882652) [Bool] AppDomainSetup_CachePath (0x5A00918) [Path] AppDomainSetup_DisallowBindingRedirects (0x388265A) [Bool] AppDomainSetup_DisallowCodeDownload (0x388265E) [Bool] AppDomainSetup_DisallowPublisherPolicy (0x3882662) [Bool] AppDomainSetup_DynamicBase (0x5A00920) [Path] AppDomainSetup_LicenseFile (0x5A00928) [Path] AppDomainSetup_ShadowCopyFiles (0x388266E) [Bool] suppressAssemblyChangedWarnMessages (0x3882672) [Bool] SaveChanges_ApplyToAll (0x4FE428) [Bool] SaveChanges_ExpandedAffectedFileList (0x4FE424) [Bool] TimeTriggeredVariableEnabled (0x3882686) [Bool] showHiddenUserDefinedRefnumClasses (0x38826A2) [Bool] scriptNodeWait (0x38826E2) [I32 ] showGridTipStrips (0x38826EA) [Bool] allowDragDropFromFileDlg (0x38826F2) [Bool] enableRelativeSharedVariableNodes (0x38826F6) [Bool] enableCreateSharedVariableFromTerm (0x38826FA) [Bool] mathScriptPath (0x5B767A8) [PLst] preloadSCScriptingVIs (0x388270A) [Bool] runSCSemanticCheck (0x388270E) [Bool] ShowTransitionNodeLabel (0x388271A) [Bool] enableStatechartInCore (0x3882716) [Bool] ShowCustomIconSCNodes (0x388271E) [Bool] ShowConfigurationSCNodes (0x3882722) [Bool] StatechartNodeBeingConfiguredColor (0x388272E) [Bool] scCodeGenUseCaseStructure (0x3882726) [Bool] ShowPathConfigIsInSCNode (0x388272A) [Bool] scInlineTopLevelGraphAttr (0x3882732) [Bool] ShowHiddenLibraryItems (0x3882736) [Bool] ShowAllVIsInErrorWindow (0x388273A) [Bool] fpgaProfileContext (0x3882746) [Bool] fpgaSeparateCompileForEmulation (0x38829E2) [Bool] AllowVILibMods (0x388274A) [Bool] AllowItemsViewDelete (0x388274E) [Bool] AdvancedPlotLegendMenu (0x388277E) [Bool] ignoreTypeLibraryTimeStamps (0x3882752) [Bool] UnveilLVClassesRT (0x3882756) [Bool] suppressAllProgressProcs (0x388275A) [Bool] loadLibsInProjects (0x388275E) [Bool] updateDependenciesAutomatically (0x3882762) [Bool] suppressResolveLoadConflictDlg (0x3882766) [Bool] suppressInitialProjectDependencyConflictDlg (0x388276A) [Bool] suppressNormalProjectDependencyConflictDlg (0x388276E) [Bool] suppressInternalHierarchyConflictDlg (0x3882772) [Bool] dWarnWhenCrossLinkDialogsAreShown (0x3882776) [Bool] showMissingDependenciesOfInMemoryItems (0x388277A) [Bool] ignoreXControlTimeStamps (0x3882782) [Bool] MathScriptOperatorsColor (0x3882786) [Colr] MathScriptKeywordsColor (0x388278A) [Colr] MathScriptVariablesColor (0x388278E) [Colr] MathScriptConstantsColor (0x3882792) [Colr] MathScriptFunctionsColor (0x3882796) [Colr] MathScriptUDFColor (0x388279A) [Colr] MathScriptUnknownColor (0x388279E) [Colr] MathScriptNumericColor (0x38827A2) [Colr] MathScriptStringColor (0x38827A6) [Colr] MathScriptCommentsColor (0x38827AA) [Colr] MathScriptHighlightingEnabled (0x38827AE) [Bool] VariableQtDialog (0x38827B2) [Bool] viewLadderBD (0x38827B6) [Bool] enableWireTracing (0x38827BA) [Bool] maxSizeToPutInConglomerate (0x38827C6) [I32 ] showFlagsInProjectTree (0x38827CA) [Bool] showSaveAllWithChangesInProject (0x38827CE) [Bool] fastTypeProp (0x38827C2) [Bool] reorderUIDsAtSave (0x38827BE) [Bool] whileLoopSharedCloneOptions (0x38827D2) [Bool] viewHiddenLib (0x38827D6) [Bool] enableLadder (0x38827DA) [Bool] enableWCharPathCaching (0x38827DE) [Bool] enableCFileHashCaching (0x38827E2) [Bool] enablePsuedoPathCaching (0x38827E6) [Bool] enableFileRedirection (0x38827EA) [Bool] allowSlightlyFutureXMutationTriggers (0x38827EE) [Bool] allowConvertToStub (0x38827F2) [Bool] resizeObjectsOnBlockDiagram (0x38827F6) [Bool] allowDeferredXNodeCodeGen (0x38827FA) [Bool] MathScriptEnableUndo (0x38827FE) [Bool] extFuncCatching (0x378BDC8) [I32 ] GenericsAreGo (0x3882806) [Bool] ShowLoadProgressDialog (0x388280A) [Bool] useNumbersForNewVIIcons (0x38826FE) [Bool] MathScriptIntegerColor (0x388280E) [Colr] MathScriptDoubleColor (0x3882812) [Colr] MathScriptComplexColor (0x3882816) [Colr] MathScriptCharColor (0x388281A) [Colr] MathScriptBooleanColor (0x388281E) [Colr] MathScriptUnknownVarColor (0x3882822) [Colr] MathScriptPluginColor (0x3882826) [Colr] MathScriptScalarShape (0x388282A) [I32 ] MathScriptVectorShape (0x388282E) [I32 ] MathScriptMatrixShape (0x3882832) [I32 ] MSNSkipDiagram (0x3882836) [Bool] MathScriptVariantColor (0x388283E) [I32 ] TotallySecretAndPrivateMSNCompanionDiagram (0x3882626) [Bool] DialogBoolsOnlyUseWindowsKeys (0x38826AE) [Bool] SaveBackIntoOriginalFile (0x37A3F74) [Bool] RecompileOnLibChange (0x388241E) [Bool] GSW_RSSCheckEnabled (0x388283A) [Bool] enableSecretPopups (0x3882842) [Bool] noShowHideFloaters (0x3882B0E) [Bool] MathScriptFastPropTypes (0x3882846) [Bool] EnableMSCompilerFastLoad (0x388284A) [Bool] openProbesInOwnWindows (0x3882966) [Bool] dataAddressProbes (0x388296A) [Bool] activeXUseStandardExecSystem (0x3882852) [Bool] skipSCCFolders (0x4FE41C) [P255] skipSVNFolders (0x3882856) [Bool] testStandOptions (0x388295A) [I32 ] showHardwareDetails (0x3882962) [Bool] autoResizeScrollbars (0x388295E) [Bool] sourceOnlyEnabled (0x388299A) [Bool] sourceOnlyEnvironment (0x388299E) [Bool] sourceOnlyRemoveAdjacentObjFile (0x38829A2) [Bool] server.viscripting.showScriptingOperationsInEditor (0x3882992) [Bool] server.viscripting.showScriptingOperationsInContextHelp (0x3882996) [Bool] server.viscripting.showRiskyScriptingItems (0x38829A6) [Bool] LVNotebookBehaviorEnabled (0x38829AA) [Bool] LVNotebookCrappyWindowSuppressionEnabled (0x38829AE) [Bool] useCacheForDeployment (0x38829BE) [Bool] rtDownloadPackedLibraries (0x38829C2) [Bool] UseAppBuilderCache (0x38829C6) [Bool] RTCloseVIsOnDocMod (0x38829CA) [Bool] MathScriptStructColor (0x38829D6) [Colr] MultiSelectPopUp (0x3882A0E) [Bool] LazyLoadIcons (0x38829DA) [Bool] VisWithIcons (0x38829DE) [LStr] DropSubdiagramLabelByDefault (0x38829E6) [Bool] DefaultSubdiagramLabelJustification (0x38829EA) [I32 ] ShowRawCodeComplexity (0x38829EE) [Bool] CompilerCodeComplexityThreshold (0x38829F2) [I32 ] skipLoadingProjectProviderInBlackList (0x38829F6) [Bool] UDCInstallID (0x38829FA) [LStr] UDCConfig (0x38829FE) [LStr] DisableUDCEngagement (0x3882B6A) [Bool] DefaultLabelPositionIndFP (0x3882A02) [I32 ] DefaultLabelPositionIndBD (0x3882A06) [I32 ] DefaultLabelPositionOtherBD (0x3882A0A) [I32 ] AllowStackVariables (0x3882A12) [Colr] MathScriptCellArrayColor (0x3882A1A) [Colr] RT.DeployInlineSubVIs (0x3882A1E) [Bool] operateCursorRunningVIs (0x3882A22) [Bool] CoerceWrongPlatformPathInput (0x3882A26) [Bool] useSmallerMapLimit (0x3882A2A) [Bool] useLargerMapLimit (0x3882AF2) [Bool] Bookending.Enabled (0x3882A32) [Bool] Bookending.MinThreshold (0x3882A36) [I32 ] Bookending.Step1Threshold (0x3882A3A) [I32 ] Bookending.Step2Threshold (0x3882A3E) [I32 ] Bookending.MaxThreshold (0x3882A42) [I32 ] Bookending.WaitCoefficient (0x3882A46) [I32 ] UDCAlwaysQueryRemoteHardware (0x3882A4A) [Bool] GenerateInteropAssemblyDotNetFx20 (0x3882A4E) [Bool] AllowCLFNTakeSlice (0x3882A52) [Bool] CrashBeforeHardBreakPoint (0x3882A56) [Bool] EnableGenCodeDebugInfo (0x3882A5A) [Bool] EnableDebugInfoDumper (0x3882A5E) [Bool] UseZipDirCacheForLVLibp (0x3882A62) [Bool] EnableLibraryScopeOptimization (0x3882A66) [Bool] QuickBold (0x3882A6A) [Bool] DefaultNewControlVIType (0x3882B06) [I32 ] EnableAppBuilderLoadCodeOptimization (0x3882A6E) [Bool] MakeMultiThreadedLoadSourceOnlyAware (0x3882A72) [Bool] FitProbes (0x3882ABA) [Bool] ShowLabelAffordances (0x3882A7E) [Bool] disablePathCorrectionInBoundFile (0x3882A82) [Bool] disableBoundVIsInMultiThreadLoad (0x3882A86) [Bool] disableErrorDlgSearchHyperlink (0x3882A8A) [Bool] EnableCocoaLogging (0x3882A96) [Bool] SubPanelDiagramEditing (0x3882A9A) [Bool] SmarterAutomaticTunnelCreation (0x3882A9E) [Bool] AutomaticShiftRegisterCreation (0x3882AA2) [Bool] SelectiveDeallocation (0x3882AA6) [Bool] SelectiveDeallocation.EnableForAllVIs (0x3882AAA) [Bool] SelectiveDeallocation.LargeBufferThreshold (0x3882AAE) [I32 ] SelectiveDeallocation.UseBufferCache (0x3882AB2) [Bool] EnableLoadAndSaveWarningsLink (0x3882AB6) [Bool] DontCopyMissingVIIcon (0x3882ABE) [Bool] VIPurgeDisposesIcons (0x3882AC2) [Bool] TargetStructureNodeEnabled (0x3882B56) [Bool] TargetStructureShowScriptedDiagram (0x3882B5A) [Bool] TargetStructureSyntaxCheck (0x3882B5E) [Bool] TargetStructureNodeDetectNestedEnabled (0x3882B62) [Bool] TargetStructureNodeShowLocationTerminal (0x3882B66) [Bool] RaceStructureNodeEnabled (0x3882ACE) [Bool] ClosureStructureNodeEnabled (0x3882AD2) [Bool] EnableInheritanceLinkRefs (0x3882AC6) [Bool] EnableInheritanceLinkRefAddition (0x3882ACA) [Bool] EnableInheritanceLinkRefSanityCheck (0x3882AD6) [Bool] ModernBD (0x3882ADA) [Bool] EnableInheritanceLinkRefsSignatureCheck (0x3882ADE) [Bool] LoadBinaryCompatibleCodeWithoutRecompile (0x3882AE2) [Bool] EnableExcursionFreeExecSystems (0x3882AE6) [Bool] PPLLoadInCompatibleLVVersionDefaultValue (0x3882AEA) [Bool] Treat2016AsBinaryCompatible (0x3882AEE) [Bool] ShowConsoleForPythonNode (0x3882B0A) [Bool] Python27SharedLibraryName (0x5A00940) [Path] Python36SharedLibraryName (0x5A00948) [Path] SaveChangesAutoSelection (0x4FE420) [P255] SuppressMathScriptDeprecatedWarning (0x3882B32) [Bool] AppBuilderExcludeLVRTShippedLibs (0x3882B1E) [Bool] UseGeneratedCopyProcsForUDClasses (0x3882B22) [Bool] UseSelectiveDeallocationForAsynchronousCallByRef (0x3882B26) [Bool] UseLVTracingEnvoyToGenerateDETTEvent (0x3882B2E) [Bool] SuppressIntermediateBuildContextTypeProp (0x3882B36) [Bool] AllowFreezingTypePropInBuildContext (0x3882B3E) [Bool] ApplicationAMQPWebServices (0x3882B3A) [LStr] AllowAsyncCBRChannels (0x3882B42) [Bool] DisconnectPrivateTypedefsInPPLs (0x3882B46) [Bool] AllowMarshalToNamedTuple (0x3882B4E) [Bool] ShowCommandWindowForMATLABNode (0x3882B52) [Bool] NoTypeBanner (0x3882632) [Bool] DataValueReferenceTypeCheckingEnabled (0x4FE46C) [Bool] checkQElements (0x38F660C) [Bool] execThreadStackOffsetIncr (0x37B034C) [I32 ] MaxCPUsSystemPool (0x4FE458) [I32 ] ESys.StdNParallel (0x38F6564) [I32 ] AddExecThreadsDynamically (0x4FE454) [Bool] ExecThreadGrowCapacity (0x3821D24) [I32 ] DPrintWhenThreadsAreAdded (0x4FE450) [Bool] DPrintExtraESystemChanges (0x4FE45C) [Bool] Use_Background_Priority_Threads (0x3821B58) [Bool] CDIntervalTicks (0x382104C) [I32 ] useDefaultTimer (0x38F2D74) [Bool] FilterExec (0x3821B54) [Bool] ShowDSCFeaturePacks (0x4FE31C) [Bool] ShowRTFeaturePacks (0x4FE31C) [Bool] AlphabetizeVIServerClassMenu (0x4FDF70) [Bool] genDualInterface (0x378A7F0) [Bool] enableCustomInterface (0x378A7F4) [Bool] OleVariantList (0x3872470) [Bool] BigSavingsFormat (0x5B767D4) [PStr] paletteStyle (0x5B767D8) [PStr] PaletteNavBarStyle (0x5B767D8) [PStr] colorHistoryItemA (0x4FE3F4) [Colr] colorHistoryItemB (0x4FE3F4) [Colr] colorHistoryItemC (0x4FE3F4) [Colr] colorHistoryItemD (0x4FE3F4) [Colr] colorHistoryItemE (0x4FE3F4) [Colr] colorHistoryItemF (0x4FE3F4) [Colr] colorHistoryItemG (0x4FE3F4) [Colr] colorHistoryItemH (0x4FE3F4) [Colr] colorHistoryItemI (0x4FE3F4) [Colr] colorHistoryItemJ (0x4FE3F4) [Colr] colorHistoryItemK (0x4FE3F4) [Colr] colorUserItem (0x5B76C7C) [CPSt] ImageDrawingMergeSolidIcons [Bool] LogFileSaved (0x388C9F0) [Bool] enableGroupLock (0x4FE2EC) [Bool] ignoreHelpAndProjDirs (0x4FE31C) [Bool] userVIsAppearFirst (0x4FDB88) [Bool] weakModDateCheck (0x37AD258) [Bool] ObjCacheNextToDist (0x4FB4FC) [Bool] CompiledObjCacheRoot (0x4FB4F8) [Pthp] MaxCompileThreads (0x380C944) [I32 ] EnableLLVM (0x380C940) [Bool] LLVMOptLevel (0x380C948) [I32 ] LLVMFuncOpts (0x38DA798) [LStr] LLVMModuleOpts (0x38DA79C) [LStr] ARMTargetHardFloatABI (0x38DA7A0) [Bool] LLVMSepUFP (0x380C954) [Bool] LLVMFastJIT (0x38DA7B8) [Bool] LLVMDSAlloc (0x38DA7A8) [I32 ] LLVMVerbose (0x38DA78C) [Bool] LLVMUseOldGVN (0x380C950) [Bool] LLVMAllocaVR (0x38DA794) [Bool] LLVMDebugOutput (0x38DABC4) [Bool] LLVMNodeExecDebug (0x38DA790) [I32 ] LLVMVerify (0x380C958) [Bool] LLVMDebugLoc (0x38DA788) [Bool] LLVMSplitProc (0x380C94C) [Bool] LLVMDumpBitcode (0x38DA7AC) [Bool] LLVMDumpDot (0x38DA7B0) [Bool] EnableLegacyCompilerFallback (0x38DA7C0) [Bool] LargeVIsUseLLVMBasicRegAlloc (0x38DA7BC) [Bool] LLVMNoOptEmitThreshold (0x38DA7C4) [I32 ] TDSanityChecking (0x4FB304) [Bool] CorrectLinkerPathCapitalization (0x37B7BCC) [Bool] EnableVerboseProgressOutput (0x3897404) [Bool] MenuMRUItems (0x4FE330) [LStr] convert4xData (0x37942A4) [Bool] genDFIRFiles (0x4FE468) [I32 ] gCachedArc.extreme (0x38843C2) [Bool] autoToolOn (0x4FE47C) [Bool] ContextHelpLoc (0x4FE474) [Rect] ScaledToFitVisible (0x38915C8) [Bool] cleanupVisa (0x3881ECE) [Bool] WebServer.Enabled (0x3881EF2) [Bool] WebServer.TcpAccess (0x5B79430) [CPSt] WebServer.ViAccess (0x5B79440) [CPSt] WebServer.ImageType (0x5B79448) [PStr] WebServer.ImageDepth (0x3881F0A) [I32 ] WebServer.ImageQuality (0x3881F0E) [I32 ] WebServer.ImageCompression (0x3881F12) [I32 ] WebServer.ImageLifeSpan (0x3881F16) [I32 ] WebServer.ImageFullPanel (0x3881F1A) [Bool] WebServer.ConfigFilePath (0xD523BE0) [Path] tcpServer.logDetails (0x38CA2E4) [Bool] tcpServer.log (0x4FE46C) [Bool] tcpServer.logPath (0xD523C40) [Path] RegisterExtensions (0x4FE47C) [Bool] DSWriteTimeout (0x378AFB4) [I32 ] DSWriteACKBeginInterval (0x378AFB8) [I32 ] FPDSConnectTimeout (0x37B9F24) [I32 ] SymbolicPaths.ResolvePath.ReportNonExisting [Bool] dumpLoadLog (0x4FE47C) [Bool] SanityCheckMode (0x37AF7E4) [I32 ] defaultConPane (0x4FE1D4) [I32 ] RemoteVIObjReady (0x3822240) [Bool] RemotePanelRemoteVIObjReady (0x38F669C) [Bool] EnableSSEOptimization (0x378BCF0) [Bool] showSystemVIs (0x388BD0C) [Bool] ClipboardDebugOutput (0x38EED34) [Bool] skipAutoLaunchVIs (0x4FE560) [Bool] EnableReusableCode (0x378BC9C) [Bool] EnableReusableCodeVAST (0x378BCA0) [Bool] EnableReusableCodeCPUExt (0x378BCA4) [Bool] EnableReusableCodeAVX512 (0x3873B28) [Bool] LipoCodeGenerateAll (0x3873B2C) [Bool] CodeRegistryVerbose (0x3873AAC) [Bool] CodeRegistryMaxCacheEntries (0x378BC8C) [I32 ] CodeRegistryMaxCacheMem (0x378BC90) [I32 ] SIMDExtLimit (0x378BC98) [I32 ] checkFontSize (0x38C1244) [Bool] EnableMultiThreadedLoad (0x4FD304) [Bool] LoadFromLEIFIfPresent (0x37B670C) [Bool] WriteLEIFInfoFile (0x3895570) [Bool] LEIFThreadCount (0x37B6710) [I32 ] AppFileFormat (0x3895574) [I32 ] DoLEIFAppLoadSanityChecks (0x3895578) [Bool] readAllOpDataInLoadProc (0x38F6678) [Bool] DWarnForUnreservedOrUnClonedVI (0x38F667C) [Bool] simpleCloneSuffixes (0x38CEC94) [Bool] shareDefaultsAmongClones (0x37AFB20) [Bool] BrokenVI.DisableLogging [Bool] BrokenVI.LogEveryTimeInIDE [Bool] projectProviderSearchPaths (0x5B79618) [PLst] LvProvider.fakeRootLoop (0x55312708) [Bool] initialClonePoolSize (0x38071E0) [I32 ] InplacerFindArraySlices (0x379D2F4) [Bool] ExtFuncStackCheck (0x378BE0C) [Bool] CIntSimulatedFlags (0x38C9068) [I32 ] GarbageCollectOnVIDispose (0x3804084) [Bool] RTHostVIMethodSynchrousDoRunCommand (0x37C3BB8) [Bool] useOCXLicensing (0x38724DC) [Bool] checkActiveXLibs (0x3881EEA) [Bool] shouldClearStartupLeaks (0x4FE728) [Bool] autoerr (0xF4B2A10) [] writeToStatusLogFile (0x37A2E90) [Bool] useOldData (0x378BB50) [Bool] useOldDataOnArrays (0x378BB4C) [Bool] NI_GSWContentIndex (0xF816F24) [] NI_GSWContentExpanded (0xF4B66E0) [] NI_GSWPosition (0xF4B8B34) [ ] Editor.Zoom.BlockDiagram.MinFactor (0x4FDF90) [F32 ] Editor.Zoom.BlockDiagram.MaxFactor (0x4FDF8C) [F32 ] TargetHelpMenu (0x38747D8) [Bool] TargetToolsMenu (0x38747F0) [Bool] GSW_filter (0xF816F24) [] GSW_Pinned_Files (0x5B7FE44) [PLst] NewProj.maxNum (0xF816F24) [] GSW_Pinned_Templates (0x5B7FE44) [PLst] GSW_Pinned_Templates_names (0xF7C8CE0) [ ] NewProj.RecentLocationPaths (0x5B7FE3C) [PLst] dWarnOnUndoReset (0x37AF840) [Bool] Editor.WatermarkTesting [Bool] LaunchTimeBenchmarking (0xF4B66E0) [] Creating a new VI: Quote EnableDFIRSanity (0x3880104) [Bool] EnableDFIRProptypes (0x3880108) [Bool] EnableDFIRDOT (0x388010C) [Bool] EnableDFIRBriefDOT (0x3880110) [Bool] EnableDFIRCodeGen (0x379D2C0) [Bool] EnableDFIRTest (0x3880114) [Bool] EnableInPlaceViewing (0x3880118) [Bool] EnableDFIRTransformFrameworkDebug (0x388011C) [Bool] EnableDFIRAutoInlining (0x3880120) [Bool] EnableDFIRAggressiveAutoInlining (0x3880124) [Bool] EnableDFIRInlineAndDisconnectAll (0x3880128) [Bool] EnableMSPartialDebugging (0x379D2D0) [Bool] EnableMSMinimalDebugging (0x388012C) [Bool] ParallelLoop.PrevNumLoopInstances (0x379D2C4) [I32 ] ParallelLoop.MaxNumLoopInstances (0x379D2C8) [I32 ] ParallelLoop.EnableErrorIORegisters (0x379D2CC) [Bool] shareVIInvariantDataSpace (0x378F860) [Bool] VectorAST.log.enable (0x387B40C) [Bool] EnableDFIRInplacePathIndentifier (0x378FA6C) [Bool] EnableDFIRSpeculativeInplacePathIdentifier (0x378FA70) [Bool] InplacerPhases (0x4FD140) [Bool] generateInflateDeflateEtc (0x38DAEC8) [Bool] generateDefaultsUnflattenEtc (0x38DAECC) [Bool] generateDeflates (0x38DAEC4) [Bool] generateFlagsShortcut (0x380CF3C) [Bool] EnableRegisterCandidateIntegers (0x378F864) [Bool] EnableRegisterCandidateFloats (0x378FB94) [Bool] EnableLLVMSSE1 (0x380C8BC) [Bool] EnableLLVMSSE2 (0x380C8B8) [Bool] stripNamesFromDSTM (0x378DCD0) [I32 ] showAllPalettes (0x3884AA4) [Bool] leftClickPopupPalette (0x3884A8C) [Bool] hideEmptySubPalettes (0x3884AB4) [Bool] PaletteHidddenFunctionlCategories_LocalHost (0x4FDE5C) [LStr] PaletteHidddenControlCategories_LocalHost (0x4FDE5C) [LStr] saveFloaterLocations (0x4FDFC4) [Bool] toolPaletteLoc (0x4FDFBC) [Rect] menu.1 (0x12FF8340) [Path] CallistoAutoReload (0x387B77C) [Bool] CallistoSimpleWires (0x387B780) [Bool] CallistoDebug (0x387B784) [Bool] autoLayoutAutoTune (0x387B7D4) [Bool] autoLayoutStrictness (0x387B7B8) [I32 ] autoLayoutMaxSimplex (0x387B7C0) [I32 ] autoLayoutMaxHeuristics (0x387B7BC) [I32 ] autoLayoutBlockPaddingX (0x387B7C4) [I32 ] autoLayoutBlockPaddingY (0x387B7C8) [I32 ] autoLayoutWirePaddingX (0x387B7CC) [I32 ] autoLayoutWirePaddingY (0x387B7D0) [I32 ] autoLayoutFineTuneY (0x387B7D5) [Bool] autoLayoutFixControls (0x387B7D6) [Bool] autoLayoutFixIndicators (0x387B7D7) [Bool] autoLayoutAlignment (0x387B7B4) [I32 ] grayOutMethod (0x5B6E360) [PStr] Doing various stuff in there (incl. building an EXE as the last operation): Quote EnableExternalDataValueReference (0x378BC0C) [Bool] defPrecision (0x5B5B4D0) [PStr] BetterWireColors (0x38CB018) [Bool] fadeEphemeralWires (0x387B888) [Bool] PopupMenus.ElevateCreation [Bool] customizeFPPopupMenus (0x38919CC) [Bool] hideBDPopupMenus (0x38919D0) [Bool] propPageDebug (0xFA40AB4) [ ] PropPageBounds (0xFA8B8C0) [ ] MalleablesPretendApplyChanges (0x387BE0C) [Bool] VISignature.ActiveDiagOnly (0x387FEEC) [Bool] VISignature.SkipLinkRefs (0x387FEFC) [Bool] VISignature.SkipFPDCO (0x387FF00) [Bool] VISignature.SkipCPTM (0x387FF04) [Bool] CloseHeapsAfterVISignatureCalc (0x387FEF4) [Bool] EnableSyntaxCheckrogressOutput (0x3874B0C) [Bool] VectorAST.visual.frameWidth (0x37B4694) [I32 ] VectorAST.visual.highlightColor (0x37B4698) [Colr] EnableRegisterCandidateDebugging (0x387B5C0) [Bool] EditEventsDlgSize (0x4FB140) [Rect] failAutoRouter (0x37A1BF8) [Bool] EventInspectorPosition.0 (0x11C6BA34) [ ] resettingDlgDelay (0x37A2CB4) [I32 ] LoadCompiledVIForDifferentCodeID (0x37BB83C) [Bool] UserDefinedRefObj.BinarySearch.LinearThreshhold (0x378BF28) [I32 ] CaseDiagramInplaceSharingEnabled (0x378F9DC) [Bool] cacheAlignmentStrategy (0x4FA9CC) [I32 ] cacheAlignmentComplexityLimit (0x378F6A0) [I32 ] cacheAlignmentUseReadsAndWrites (0x4FA9C8) [Bool] enableVariableClassSpec (0x37C5FC0) [Bool] QuickChangeEnabled [Bool] QuickDropDefObjShortcutsLoaded (0x11C2D360) [] QuickDropTransparency (0x12878980) [ ] QuickDropFastSearch (0x11C2D360) [] QuickDropPosition (0x12878188) [ ] QuickDropDiagramShortcuts (0x14089AE8) [ ] menuKeywordExtra (0x4F71D4) [I32 ] OverrideDisabledCLFNs (0x3873CC8) [Bool] clnNoConfigParamWarning (0x4F90BC) [Bool] ShowRTTargetWebDocRoot (0x131F1A60) [] RegExpMatchLimitRecursion (0x100EF804) [I32 ] ShowRemoteWindowsTargetWebDocRoot (0x131F1A60) [] windowsDialog.settings (0x5B4D7C4) [PStr] EditPalettePreviewChanges (0x4FBF80) [Bool] defaultCtrlPalPos (0x4FBF84) [Rect] defaultFuncPalPos (0x4FBF84) [Rect] ScaledToFitWindowState (0x11843E90) [ ] NavigationWindowScrollInterval (0x12E1A29C) [ ] ScaledToFitLocation (0x12E1A340) [ ] LLBMgr_RecentPath (0x5B4EBD8) [PLst] LLBMgr_FavoritePaths (0x5B69120) [PLst] LLBMgr_ActivePlugins (0x5B69120) [PLst] LLBMgr_FavoriteNames (0x5B69120) [PLst] NewDlgRecentMainTemplates.pathList (0x155C73B0) [PLst] NewDlgLastSelected (0x12451C40) [ ] NewDlgBounds (0x119EC040) [ ] NewDlgCollapsed (0x119EBEC4) [ ] NewDlgRecentTemplates.pathList (0x5B585C8) [PLst] BookmarkManager.DoNotShowChooser (0x12E655A0) [] BookmarkManager.Preferred (0x1288D41C) [ ] BookmarkManager.Choices (0x1288D0F4) [ ] BookmarkManager.GroupByVI (0x12E655A0) [] BookmarkManagerWindow.position (0x1288B6D8) [ ] BookmarkManager.ShowRESOURCE (0x12E655A0) [] BookmarkManager.ShowVILIB (0x12E655A0) [] useNewProjWiz (0x4FC320) [Bool] IconEditor.Position (0x121DA7C0) [ ] IconEditor.TextFont (0x1288C524) [ ] IconEditor.TextAlignment (0x1354C3A4) [] IconEditor.TextSize (0x1354C3A4) [] IconEditor.Save3rdPartyTemplates (0x1354F7E0) [] IconEditor.3rdPartyTemplatesFolderName (0x1288C708) [ ] IconEditor.TextTab.Color1stBodyLine (0x1354C3A4) [] IconEditor.TextTab.Color2ndBodyLine (0x1354C3A4) [] IconEditor.TextTab.Color3tdBodyLine (0x1354C3A4) [] IconEditor.TextTab.Color4thBodyLine (0x1354C3A4) [] IconEditor.TextTab.TextFont (0x1288C978) [ ] IconEditor.TextTab.TextAlignment (0x1354C3A4) [] IconEditor.TextTab.TextSize (0x1354C3A4) [] IconEditor.TextTab.Options (0x1354C3A4) [] IconEditor.FillColor (0x1354C3A4) [] IconEditor.EdgeColor (0x1354C3A4) [] IconEditor.Tool (0x1354C3A4) [] IconEditor.ShowLayerTab (0x1354F7E0) [] IconEditor.ShowTerminals (0x1354F7E0) [] IconEditor.SaveLayersWithVI (0x1354F7E0) [] IconEditor.MostRecentTab (0x1354C3A4) [] IconEditor.DisableUserLayers (0x1354F7E0) [] IconEditor.FirstLaunch (0x1354F7E0) [] EnableRegisterCandidateLoopIndex (0x378FB98) [Bool] diff.specFlags (0x1B5A13CC) [ ] profileHiddenContexts (0x37AF1AD) [Bool] ShowBufferAllocationsArrays (0x1C8E8A60) [] ShowBufferAllocationsClusters (0x1C8E8A60) [] ShowBufferAllocationsStrings (0x1C8E8A60) [] ShowBufferAllocationsPaths (0x1C8E8A60) [] ShowBufferAllocationsScalars (0x1C8E8A60) [] ShowBufferAllocationsVariants (0x1C8E8A60) [] ShowBufferAllocationsOther (0x1C8E8A60) [] ShowBufferAllocationsDynDisp (0x1C8E8A60) [] ViewInPlaceness (0x387BCD4) [Bool] enableQuadCaseStruct (0x4F8EAC) [Bool] recentUserName (0x5B0CDE4) [PStr] FindVIsOnDiskPosition (0x19EFC3C8) [ ] FindVIsOnDiskLastDir (0x1C94CFEC) [PLst] SmoothPlotsWithRM [Bool] BYOB_RecentBlocks (0x143BB318) [PLst] XNodeAvoidTPCompiles [Bool] TargetFileLocator.LookForFile.Debugging [Bool] TargetFileLocator.LookForFile.AcrossParallelDirs [Bool] loadAlwaysSearches (0x4FB0BD) [] DeepestAllowableRecursion (0x38071DC) [I32 ] NI.LV.RemoveNoError (0x1C8EA9A0) [] LocalHost (0x15424CB8) [Path] ProjectExplorer.ProjectItemsColWidth (0x5D85E77) [I32 ] project.DependenciesViewActive (0x5D85D4D) [Bool] project.BuildsViewActive (0x5D85D51) [Bool] ToolbarState (0x4FBBDC) [LStr] ProjectExplorer.ClassicPosition (0x4FBF7C) [Rect] SelectiveDeallocation.CacheRefreshStrategy.RefreshCycle (0x3822288) [I32 ] SelectiveDeallocation.CacheRefreshStrategy.MaxNumCallsWithEmptyCache (0x382228C) [I32 ] SelectiveDeallocation.CacheRefreshStrategy.RefreshCycleMultiplier (0x3822290) [I32 ] SelectiveDeallocation.CacheRefreshStrategy.MaxRefreshCycle (0x3822294) [I32 ] NI_AppBuilder_Logging (0x12EE1B20) [] NI_AppBuilder_SaveMode (0xF450E64) [] NI_AppBuilder_SDist_ExcludeEditTime (0x12EE1B20) [] NI_AppBuilder_UseLLBForApp (0x12EE1B20) [] NI_AppBuilder_CheckVIState_Copy (0x12EE1B20) [] NI_AppBuilder_KeepInternalLLB (0x12EE1B20) [] NI_AppBuilder_SaveTwice (0x12EE1B20) [] NI_AppBuilder_DoRepeatReadLinkInfo (0x12EE1B20) [] AppBuilderCacheRoot (0x4FEA1C) [Pthp] EDVRCacheSize (0x378BC3C) [I32 ] SkipIconLoadDuringBuild (0x12EE1B20) [] NI_AppBuilder_SkipCloseReference (0x12EE1B20) [] ProjectWindowCanSave (0x4FC6D0) [Bool] No new tokens on the VI close or LabVIEW exit. Did I grab them all? Very unlikely. But I think, tokens for most common scenarios are on the list. And there are some interesting ones. Quote Link to comment
GrayHot Posted August 20, 2023 Report Share Posted August 20, 2023 On 8/15/2023 at 8:12 PM, dadreamer said: Since LV 2021 hooking CfgGetDefault is not enough. There are two new classes in the mgcore library: LazyConfigValue_Bool32 and LazyConfigValue_PathRef. I assume, they're introduced for faster access to the token values. I always used good ol' WinAPIOverride by Jacquelin Potier to catch API calls (including LV ones), but now it seems that it lacks some necessary functionality (e.g., custom actions on a BP hit). So I decided to adapt that Lua script. LVEXEPath = "C:\\Program Files (x86)\\National Instruments\\LabVIEW 2023\\LabVIEW.exe" MGCore = "mgcore_SH_23_3.dll" FoundIt = false Tracing = false list = createStringlist() list.Sorted = true list.setDuplicates(dupIgnore) -- attach before any dynamically loaded modules, so break on EP (last arg) createProcess(LVEXEPath, "", true, true) CfgGetDefault = getAddress("LabVIEW.CfgGetDefault") debug_setBreakpoint(CfgGetDefault) LoadLibraryExA = getAddress("kernelbase.LoadLibraryExA") debug_setBreakpoint(LoadLibraryExA) function debugger_onBreakpoint() if EIP == CfgGetDefault then local tType = readString(ESP+4, 4) local size = readBytes(readInteger(ESP+8), 1, false) local token = readString(readInteger(ESP+8) + 1, size) local addr = readInteger(ESP+12) if (list.IndexOf(token) == -1) then list.add(token) print(string.format("%s (0x%X) [%s]", token, addr, tType)) end debug_continueFromBreakpoint(co_run) return 1 elseif EIP == LoadLibraryExA then local mod = readString(readInteger(ESP+4), 255) if (string.find(string.lower(mod),string.lower(MGCore))) then print("MGCore loaded") Tracing = true debug_continueFromBreakpoint(co_stepover) return 1 else debug_continueFromBreakpoint(co_run) return 1 end elseif EIP == mgc_f1 then --LazyConfigValue_Bool32::LazyConfigValue_Bool32 --print(getNameFromAddress(EIP)) local token = readString(readInteger(ESP+4), 50) if (list.IndexOf(token) == -1) then list.add(token) print(string.format("%s [Bool]", token)) end debug_continueFromBreakpoint(co_run) return 1 elseif EIP == mgc_f2 then --LazyConfigValue_PathRef::LazyConfigValue_PathRef --print(getNameFromAddress(EIP)) local token = readString(readInteger(ESP+4), 50) if (list.IndexOf(token) == -1) then list.add(token) print(string.format("%s [Path]", token)) end debug_continueFromBreakpoint(co_run) return 1 elseif EIP == mgc_f3 then --LazyConfigValue_Bool32::FindExposedValue --print(getNameFromAddress(EIP)) local token = readString(readInteger(ESP+4), 50) if (list.IndexOf(token) == -1) then list.add(token) print(string.format("%s [Bool]", token)) end debug_continueFromBreakpoint(co_run) return 1 elseif EIP == mgc_f4 then --LazyConfigValue_Bool32::operator bool --print(getNameFromAddress(EIP)) local token = readString(readInteger(ECX+4), 50) local tType = readString(ECX+8, 4) if (list.IndexOf(token) == -1) then list.add(token) print(string.format("%s (_) [%s]", token, tType)) end debug_continueFromBreakpoint(co_run) return 1 else if (Tracing) and (not FoundIt) then debug_continueFromBreakpoint(co_stepover) extra, opcode, bytes, addy = splitDisassembledString(disassemble(EIP)) RetFound = string.find(opcode, "ret") if RetFound then print(string.format("RET found as %s", opcode)) FoundIt = true Tracing = false debug_removeBreakpoint(LoadLibraryExA) reinitializeSymbolhandler(true) mgc_f1 = getAddress("mgcore_SH_23_3.LazyConfigValue_Bool32::LazyConfigValue_Bool32") debug_setBreakpoint(mgc_f1) mgc_f2 = getAddress("mgcore_SH_23_3.LazyConfigValue_PathRef::LazyConfigValue_PathRef") debug_setBreakpoint(mgc_f2) mgc_f3 = getAddress("mgcore_SH_23_3.LazyConfigValue_Bool32::FindExposedValue") debug_setBreakpoint(mgc_f3) -- ! USE WITH CAUTION -- This func is called THOUSANDS of times -- LV becomes lagging and badly responsive mgc_f4 = getAddress("mgcore_SH_23_3.LazyConfigValue_Bool32::operator bool") debug_setBreakpoint(mgc_f4) return 1 end else debug_continueFromBreakpoint(co_run) return 1 end end end Not that I'm a big fan of scripting languages, plus Lua in CE acts odd sometimes, so this script is far away from ideal. It also hooks only a few LazyConfigValue functions as the rest doesn't really matter. Now here's what I've got. Launching LabVIEW: Creating a new VI: Doing various stuff in there (incl. building an EXE as the last operation): No new tokens on the VI close or LabVIEW exit. Did I grab them all? Very unlikely. But I think, tokens for most common scenarios are on the list. And there are some interesting ones. I thinks you are right, you grab them all. But by time there will be new tokens when there will be any updates in version. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.