Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
För att manipulera registerposter kan drivrutiner anropa RtlXxxRegistryXxx-rutinerna , vilket ger ett enklare gränssnitt än ZwXxxKey-rutinerna . I sådana fall behöver drivrutinen inte öppna och stänga hanterare. I stället refererar drivrutinen till nycklar med namnet.
Du skickar parametrarna RelativeTo och Path till varje RtlXxxRegistryXxx-rutin . Om RelativeTo är RTL_REGISTRY_ABSOLUTE anger Path nyckelns fullständiga sökväg, med början i \Registry-roten . Om RelativeTo är RTL_REGISTRY_HANDLE är Path faktiskt ett öppet handtag. Ytterligare RTL_REGISTRY_XXX-värden för RelativeTo anger sökvägarna för gemensamma rötter för nyckeln. I dessa fall anger Path sökvägen i förhållande till roten. RTL_REGISTRY_USER kräver till exempel att Sökvägen är relativ till den aktuella användarens registerinställningar. (Det här värdet motsvarar att ange HKEY_CURRENT_USER i ett användarlägesprogram.) En beskrivning av alla RTL_REGISTRY_XXX-värden finns i RtlCheckRegistryKey.
I följande tabell visas de åtgärder som drivrutiner kan utföra genom att anropa RtlXxxRegistryXxx-rutinerna .
| Verksamhet | RtlXxxRegistryXxx rutin att anropa |
|---|---|
Skapa en registernyckel |
|
Kontrollera om det finns en registernyckel |
|
Granska ett eller flera registernyckelvärden |
|
Skriva ett registernyckelvärde |
|
Ta bort ett registernyckelvärde |
I följande kodexempel visas hur du anger ValueName för \Registry\Machine\System\KeyName till ett ULONG-värde för 0xFF. Jämför det här exemplet med motsvarande i avsnittet Rutiner för registernyckelobjekt .
NTSTATUS status;
ULONG data = 0xFF;
status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE,
(PWCSTR)L"\\Registry\\Machine\\System\\KeyName",
(PWCSTR)L"ValueName",
REG_DWORD,
&data,
sizeof(ULONG));
Även om du skriver färre kodrader när du använder RtlXxxRegistryXxx-rutinerna i stället för ZwXxxKey-rutinerna , är de senare nödvändiga för att utföra vissa åtgärder. Det finns till exempel ingen RtlXxxRegistryXxx-rutin som motsvarar ZwEnumerateKey.
Om du utför flera åtgärder på samma nyckel är ZwXxxKey-rutinerna mer effektiva – du kan använda samma öppna handtag för varje åtgärd. Däremot öppnar och stänger RtlXxxRegistryXxx-rutinerna ett nytt handtag för varje åtgärd.