Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ovladače mohou pro manipulaci s položkami registru volat rutiny RtlXxxRegistryXxx , které poskytují jednodušší rozhraní než rutiny ZwXxxKey . Při tom nemusí ovladač otevřít a zavřít rukojeti; místo toho ovladač odkazuje na klíče podle jména.
Parametry RelativeTo a Path předáte každé rutině RtlXxxRegistrXxx. Pokud je RelativeTo RTL_REGISTRY_ABSOLUTE, cesta určuje úplnou cestu klíče počínaje kořenem \Registry . Pokud je RelativeTo RTL_REGISTRY_HANDLE, Path je ve skutečnosti otevřený popisovač. Další hodnoty RTL_REGISTRY_XXX pro RelativeTo určují cesty společných kořenových klíčů pro klíč; v těchto případech cesta určuje cestu relativní k danému kořenovému adresáři. Například RTL_REGISTRY_USER vyžaduje, aby Path byla relativní s ohledem na nastavení registru aktuálního uživatele. (Tato hodnota je ekvivalentní zadání HKEY_CURRENT_USER v aplikaci v uživatelském režimu.) Popis všech hodnot RTL_REGISTRY_XXX naleznete v tématu RtlCheckRegistryKey.
Následující tabulka uvádí operace, které můžou ovladače provádět voláním rutin RtlXxxRegistryXxx .
| Operace | Rutina RtlXxxRegistryXxx pro volání |
|---|---|
Vytvoření klíče registru |
|
Kontrola, jestli existuje klíč registru |
|
Prozkoumání jedné nebo více hodnot klíčů registru |
|
Zápis hodnoty klíče registru |
|
Odstranění hodnoty klíče registru |
Následující příklad kódu ukazuje, jak nastavit ValueName pro \Registry\Machine\System\KeyName na hodnotu ULONG 0xFF. Porovnejte tento příklad s odpovídajícím příkladem v části Rutiny objektu klíče registru .
NTSTATUS status;
ULONG data = 0xFF;
status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE,
(PWCSTR)L"\\Registry\\Machine\\System\\KeyName",
(PWCSTR)L"ValueName",
REG_DWORD,
&data,
sizeof(ULONG));
I když při použití rutin RtlXxxRegistryXxx místo rutin ZwXxxKey píšete méně řádků kódu, jsou tyto řádky nezbytné pro provádění určitých operací. Například neexistuje žádná rutina RtlXxxRegistryXxx , která odpovídá ZwEnumerateKey.
Pokud na stejném klíči provádíte více operací, jsou funkce ZwXxxKey efektivnější – pro každou operaci můžete použít stejný otevřený popisovač. Naproti tomu rutiny RtlXxxRegistryXxx otevírají a ukončují nový popisovač pro každou operaci.