Jump to content

I found some more hidden INI keys


Sparkette

Recommended Posts

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>
[...]

 

Link to comment

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_BD.png.192d491fb686369bd8eb8bf39646203f.png

DbgPrintf.vi

I also noticed that there are some private flag bits for CLFNs, e.g. extFuncVarArgs, extFuncParamsFromTL, extFuncNIValidated, extFuncTopLevelOnlyInUI.

2020-05-22_17-28-44.jpg.d9394f21a0633457eeb752f18fe421e3.jpg

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?

2020-05-22_17-40-34.jpg.328899ecd4b115893b74394023138edd.jpg

2020-05-22_17-43-40.jpg.d71e19a4530fc595746550b4aa17e1d5.jpg

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 by dadreamer
adding more info
  • Like 2
Link to comment
3 hours ago, dadreamer said:

Did you know that it's possible to create an input constant for CLFN's return terminal?

2020-05-22_17-40-34.jpg.328899ecd4b115893b74394023138edd.jpg

2020-05-22_17-43-40.jpg.d71e19a4530fc595746550b4aa17e1d5.jpg

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).

Link to comment
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.

1226959367_23-05-202023-05-17.jpg.e7bacc8ef2cb2b9bb69a92e241cbe1c2.jpg

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:

2015246873_23-05-202023-16-14.jpg.e7d8f71d71a18a0bb4f745420ef2d1dc.jpg

Might be an omission when porting to the new managers interface?..

Link to comment
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.

Link to comment
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?

Link to comment
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 by dadreamer
Link to comment
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 by ShaunR
Link to comment
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.

 

Link to comment
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 by dadreamer
Link to comment
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.

Link to comment
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 by ShaunR
Link to comment
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.

Link to comment
  • 4 months later...
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 by flarn2006
Link to comment
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.

2020-10-02_11-32-31.jpg.5e99a8deb3129b8ca13f765604f12633.jpg

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.

2020-10-02_12-00-17.jpg.2c7f710ea6be85d313f78ddc4152d45c.jpg

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 by dadreamer
Link to comment
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.

2020-10-02_11-32-31.jpg.5e99a8deb3129b8ca13f765604f12633.jpg

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.

2020-10-02_12-00-17.jpg.2c7f710ea6be85d313f78ddc4152d45c.jpg

These tokens should be added to this thread for sure.

Oh, forgot I posted that thread. Thanks :)

Edited by flarn2006
Link to comment
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 by Rolf Kalbermatter
Link to comment
  • 1 year later...

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 by Aristos Queue
Link to comment
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?

Link to comment
  • 10 months later...
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. :rolleyes:

Link to comment
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. :rolleyes:

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. 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.