Opis analizy drzewa
Jeden lub więcej drzew analizy można zdefiniować w skrypcie sekretarza, gdzie każdy rozbiór ma następującą postać:
<root key>{<registry expression>}+
w przypadku gdy:
<root key> ::= HKEY_CLASSES_ROOT | HKEY_CURRENT_USER |
HKEY_LOCAL_MACHINE | HKEY_USERS |
HKEY_PERFORMANCE_DATA | HKEY_DYN_DATA |
HKEY_CURRENT_CONFIG | HKCR | HKCU |
HKLM | HKU | HKPD | HKDD | HKCC
<registry expression> ::= <Add Key> | <Delete Key>
<Add Key> ::= [ForceRemove | NoRemove | val]<Key Name>
[<Key Value>][{< Add Key>}]
<Delete Key> ::= Delete<Key Name>
<Key Name> ::= '<AlphaNumeric>+'
<AlphaNumeric> ::= any character not NULL, i.e. ASCII 0
<Key Value> ::== <Key Type><Key Name>
<Key Type> ::= s | d
<Key Value> ::= '<AlphaNumeric>'
[!UWAGA]
HKEY_CLASSES_ROOTi HKCR są równoważne; HKEY_CURRENT_USERi HKCU są równoważne; i tak dalej.
Drzewo analizy można dodać wiele klucze i podklucze klucza głównego < >.Czyniąc to, zachowuje uchwyt podklucz otwarte aż parser ukończy analizowanie wszystkich jego podkluczy.To podejście jest bardziej efektywne niż działających na jednego klucza w czasie, w następującym przykładzie:
HKEY_CLASSES_ROOT
{
'MyVeryOwnKey'
{
'HasASubKey'
{
'PrettyCool?'
}
}
}
W tym miejscu otwiera początkowo sekretarza (tworzy) HKEY_CLASSES_ROOT\MyVeryOwnKey.Go następnie widzi, że MyVeryOwnKey ma podklucza.Zamiast zamknąć klucza do MyVeryOwnKey, Sekretarz zachowuje uchwyt i otwiera (tworzy) HasASubKey przy użyciu tego uchwytu nadrzędnej.(Rejestr systemu może być wolniejsze gdy uchwyt nadrzędny nie jest otwarty.) Otwieranie w ten sposób, HKEY_CLASSES_ROOT\MyVeryOwnKey , a następnie otwarcie HasASubKey z MyVeryOwnKey jako nadrzędny jest szybsze niż otwarcie MyVeryOwnKey, zamknięcia MyVeryOwnKeyi otwierając MyVeryOwnKey\HasASubKey.