#include "cmp.h"#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include "ntdskreg.h"#include "ntddft.h"Go to the source code of this file.
| Defines | |
| #define | WORK_BUFFER_SIZE 4096 | 
| #define | FUDGE 8 | 
| #define | REGISTRY_BASE "\\REGISTRY\\MACHINE" | 
| #define | DEFAULT_TYPE REG_SZ | 
| #define | FT_REGISTRY_ROOT "\\REGISTRY\\MACHINE\\SYSTEM\\NTFT" | 
| #define | FT_STRIPE_BASE "Stripe%d" | 
| #define | FT_MIRROR_BASE "Mirror%d" | 
| #define | FT_VOLSET_BASE "VolSet%d" | 
| #define | INVALID -1 | 
| #define | DIR 0 | 
| #define | CREATE 1 | 
| #define | LIST 2 | 
| #define | CHDIR 3 | 
| #define | HELP 4 | 
| #define | QUIT 5 | 
| #define | DDEBUG 6 | 
| #define | SETVALUE 7 | 
| #define | DELKEY 8 | 
| #define | DELVALUE 9 | 
| #define | DIRLONG 10 | 
| #define | INLONG 11 | 
| #define | INSHORT 12 | 
| #define | INBYTE 13 | 
| #define | DUMP 14 | 
| #define | DISKREG 15 | 
| #define | FIXDISK 16 | 
| #define | RESTORE 17 | 
| #define | DRIVERS 18 | 
| #define | ORPHAN 19 | 
| #define | REGEN 20 | 
| #define | INIT 21 | 
| #define | MAKEFT 22 | 
| #define | CTRL_C 0x03 | 
| #define | DRIVER_KEY "\\REGISTRY\\MACHINE\\System\\CurrentControlSet\\Services" | 
| #define | TYPE_KEY "Type" | 
| #define | START_KEY "Start" | 
| #define | GROUP_KEY "Group" | 
| #define | DEPENDENCIES "DependOnGroup" | 
| #define | TEMP_BUFFER_SIZE 256 | 
| Typedefs | |
| typedef enum _DUMP_CONTROL | DUMP_CONTROL | 
| typedef enum _DUMP_CONTROL * | PDUMP_CONTROL | 
| Enumerations | |
| enum | _DUMP_CONTROL { InBytes, InShorts, InLongs } | 
| Functions | |
| NTSTATUS | FtOpenKey (PHANDLE HandlePtr, PUCHAR KeyName) | 
| NTSTATUS | FtDeleteKey (PUCHAR KeyName) | 
| NTSTATUS | FtCreateKey (PUCHAR KeyName, PUCHAR KeyClass, ULONG Index) | 
| NTSTATUS | FtDeleteValue (HANDLE KeyHandle, PUCHAR ValueName) | 
| NTSTATUS | FtSetValue (HANDLE KeyHandle, PUCHAR ValueName, PVOID DataBuffer, ULONG DataLength, ULONG Type) | 
| PUCHAR | FindTypeString (ULONG Type) | 
| BOOLEAN | ProcessHex (PUCHAR String, PULONG Value) | 
| VOID | Dump (PVOID Buffer, ULONG Length) | 
| void | UnicodePrint (PUNICODE_STRING UnicodeString) | 
| NTSTATUS | Directory (HANDLE KeyHandle, BOOLEAN LongListing) | 
| NTSTATUS | List (HANDLE KeyHandle, PUCHAR ItemName) | 
| UCHAR | GetCharacter (BOOLEAN Batch) | 
| PUCHAR | GetArgumentString (BOOLEAN Batch, PUCHAR Prompt, BOOLEAN ConvertToLower) | 
| ULONG | ParseArgumentNumeric (PUCHAR *ArgumentPtr) | 
| VOID | PromptUser (BOOLEAN Batch) | 
| int | GetCommand (BOOLEAN Batch, PUCHAR *ArgumentPtr) | 
| VOID | NotImplemented () | 
| NTSTATUS | FtReturnValue (IN HANDLE Handle, IN PUCHAR ValueName, IN PUCHAR Buffer, IN ULONG BufferLength) | 
| VOID | DiskDump () | 
| VOID | ChangeMemberState (IN ULONG Type, IN ULONG Group, IN ULONG Member, IN FT_PARTITION_STATE NewState) | 
| VOID | RestoreOrphan (IN ULONG Type, IN ULONG Group, IN ULONG Member) | 
| VOID | OrphanMember (IN ULONG Type, IN ULONG Group, IN ULONG Member) | 
| VOID | RegenerateMember (IN ULONG Type, IN ULONG Group, IN ULONG Member) | 
| VOID | FixDisk () | 
| PDISK_CONFIG_HEADER | GetDiskInfo () | 
| BOOLEAN | CreateFtMember (IN PDISK_CONFIG_HEADER ConfigHeader, IN ULONG Disk, IN ULONG Partition, IN ULONG Type, IN ULONG Group, IN ULONG Member) | 
| VOID | DisplayLoadInformation (IN PUCHAR DriverKey) | 
| VOID | ListDrivers () | 
| VOID | main () | 
| Variables | |
| PUCHAR | TypeNames [] | 
| ULONG | TypeNumbers [] | 
| PUCHAR | StartDescription [] | 
| PUCHAR | TypeDescription [] | 
| PUCHAR | Commands [] | 
| int | CommandMap [] | 
| PUCHAR | CommandHelp [] | 
| UCHAR | WorkingDirectory [512] | 
| UCHAR | CurrentDirectory [512] | 
| UCHAR | CommandLine [512] | 
| PUCHAR | SetPrompts [] | 
| PUCHAR | Version = "Version 1.30" | 
| ULONG | Debug = 0 | 
| ULONG | ForceDump = 0 | 
| DUMP_CONTROL | DumpControl = InLongs | 
| 
 | 
| 
 Definition at line 157 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 155 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 178 of file editreg.c. Referenced by GetArgumentString(). | 
| 
 | 
| 
 Definition at line 160 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 122 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 162 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 163 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 | 
| 
 | 
| 
 Definition at line 154 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 164 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 169 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 2279 of file editreg.c. Referenced by ListDrivers(). | 
| 
 | 
| 
 Definition at line 172 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 168 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 170 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 Definition at line 110 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 | 
| 
 | 
| 
 Definition at line 158 of file editreg.c. Referenced by main(), and xxxHelpLoop(). | 
| 
 | 
| 
 Definition at line 167 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 175 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 165 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 166 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 153 of file editreg.c. Referenced by GetCommand(), IsNumberInUnicodeList(), and main(). | 
| 
 | 
| 
 Definition at line 156 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 176 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 173 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 159 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 174 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 116 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 171 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 161 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 | 
| 
 | 
| 
 Definition at line 2367 of file editreg.c. Referenced by ListDrivers(). | 
| 
 | 
| 
 | 
| 
 | 
| 
 Definition at line 104 of file editreg.c. Referenced by ChangeMemberState(), Directory(), DiskDump(), FixDisk(), FtReturnValue(), GetDiskInfo(), List(), ListDrivers(), and UnicodePrint(). | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 Definition at line 344 of file editreg.c. 
 
 | 
| 
 | ||||||||||||||||||||
| 
 Definition at line 1771 of file editreg.c. References FALSE, FtOpenKey(), FtReturnValue(), FtSetValue(), Group, NT_SUCCESS, NtClose(), NTSTATUS(), NULL, TRUE, USHORT, VOID(), and WORK_BUFFER_SIZE. Referenced by main(), OrphanMember(), RegenerateMember(), and RestoreOrphan(). 
 
 | 
| 
 | ||||||||||||||||||||||||||||
| 
 Definition at line 2210 of file editreg.c. References FALSE, Group, NTSTATUS(), and TRUE. Referenced by main(). 
 
 | 
| 
 | ||||||||||||
| 
 Definition at line 903 of file editreg.c. References NT_SUCCESS, NtEnumerateKey(), NTSTATUS(), TRUE, UnicodePrint(), USHORT, and WORK_BUFFER_SIZE. Referenced by LdrpDphDetectSnapRoutines(), main(), NtCreateDirectoryObject(), NtQueryDirectoryObject(), ObpDeleteDirectoryEntry(), ObpInsertDirectoryEntry(), ObpLookupDirectoryEntry(), ObpLookupObjectName(), and ObpProcessDosDeviceSymbolicLink(). 
 
 | 
| 
 | 
| 
 Definition at line 1597 of file editreg.c. References FtOpenKey(), FtReturnValue(), NT_SUCCESS, NtClose(), NTSTATUS(), NULL, and WORK_BUFFER_SIZE. Referenced by main(). 
 
 | 
| 
 | 
| 
 Definition at line 2357 of file editreg.c. Referenced by ListDrivers(). 
 
 | 
| 
 | ||||||||||||
| 
 Definition at line 772 of file editreg.c. References Buffer, DumpControl, InBytes, InLongs, InShorts, PUSHORT, and sprintf(). 
 
 | 
| 
 | 
| 
 Definition at line 650 of file editreg.c. References NULL, TypeNames, and TypeNumbers. Referenced by List(). 
 
 | 
| 
 | 
| 
 Definition at line 1990 of file editreg.c. References FALSE, FtDeleteValue(), FtOpenKey(), FtReturnValue(), FtSetValue(), GetArgumentString(), NT_SUCCESS, NtClose(), NTSTATUS(), NULL, ProcessHex(), sprintf(), TRUE, and WORK_BUFFER_SIZE. Referenced by main(). 
 
 | 
| 
 | ||||||||||||||||
| 
 Definition at line 453 of file editreg.c. References ASSERT, Index, KeyName, NT_SUCCESS, NtClose(), NtCreateKey(), NTSTATUS(), NULL, RtlAnsiStringToUnicodeString(), RtlFreeUnicodeString(), RtlInitString(), TRUE, and VOID(). Referenced by main(). 
 
 | 
| 
 | 
| 
 Definition at line 411 of file editreg.c. References Debug, FtOpenKey(), KeyName, NT_SUCCESS, NtClose(), NtDeleteKey(), and NTSTATUS(). Referenced by main(). 
 
 | 
| 
 | ||||||||||||
| 
 Definition at line 557 of file editreg.c. References Debug, NT_SUCCESS, NtDeleteValueKey(), NTSTATUS(), RtlAnsiStringToUnicodeString(), RtlFreeUnicodeString(), RtlInitString(), TRUE, and ValueName. Referenced by FixDisk(), and main(). 
 
 | 
| 
 | ||||||||||||
| 
 Definition at line 357 of file editreg.c. References Debug, KeyName, NT_SUCCESS, NtOpenKey(), NTSTATUS(), NULL, RtlAnsiStringToUnicodeString(), RtlFreeUnicodeString(), RtlInitString(), TRUE, and VOID(). Referenced by ChangeMemberState(), DiskDump(), FixDisk(), FtDeleteKey(), GetDiskInfo(), ListDrivers(), and main(). 
 
 | 
| 
 | ||||||||||||||||||||
| 
 Definition at line 1534 of file editreg.c. References Buffer, Handle, NT_SUCCESS, NtQueryValueKey(), NTSTATUS(), NULL, RtlAnsiStringToUnicodeString(), RtlFreeUnicodeString(), RtlInitString(), TRUE, ValueName, and WORK_BUFFER_SIZE. Referenced by ChangeMemberState(), DiskDump(), FixDisk(), and GetDiskInfo(). 
 
 | 
| 
 | ||||||||||||||||||||||||
| 
 Definition at line 602 of file editreg.c. References Debug, NT_SUCCESS, NtSetValueKey(), NTSTATUS(), RtlAnsiStringToUnicodeString(), RtlFreeUnicodeString(), RtlInitString(), TRUE, and ValueName. Referenced by ChangeMemberState(), FixDisk(), and main(). 
 
 | 
| 
 | ||||||||||||||||
| 
 Definition at line 1120 of file editreg.c. References c, CommandLine, CTRL_C, GetCharacter(), NULL, and TRUE. Referenced by FixDisk(), and main(). 
 
 | 
| 
 | 
| 
 Definition at line 1081 of file editreg.c. References c. Referenced by GetArgumentString(), and GetCommand(). 
 
 | 
| 
 | ||||||||||||
| 
 Definition at line 1355 of file editreg.c. References c, CommandLine, CommandMap, Commands, Debug, GetCharacter(), INVALID, NULL, and PromptUser(). Referenced by main(). 
 
 | 
| 
 | 
| 
 Definition at line 2163 of file editreg.c. References FtOpenKey(), FtReturnValue(), NT_SUCCESS, NtClose(), NTSTATUS(), NULL, and WORK_BUFFER_SIZE. Referenced by main(). 
 
 | 
| 
 | ||||||||||||
| 
 Definition at line 966 of file editreg.c. References Dump(), FindTypeString(), ForceDump, NT_SUCCESS, NtEnumerateValueKey(), NTSTATUS(), TRUE, type, UnicodePrint(), USHORT, and WORK_BUFFER_SIZE. Referenced by main(). 
 
 | 
| 
 | 
| 
 Definition at line 2369 of file editreg.c. References DisplayLoadInformation(), DRIVER_KEY, FALSE, FtOpenKey(), L, NT_SUCCESS, NtClose(), NtEnumerateKey(), NTSTATUS(), RtlUnicodeStringToAnsiString(), sprintf(), TEMP_BUFFER_SIZE, TRUE, USHORT, WORK_BUFFER_SIZE, and WorkingDirectory. 
 
 | 
| 
 | 
| 
 Definition at line 2460 of file editreg.c. 
 
 | 
| 
 | 
| 
 Definition at line 1523 of file editreg.c. Referenced by main(). 
 
 | 
| 
 | ||||||||||||||||
| 
 Definition at line 1924 of file editreg.c. References ChangeMemberState(), and Group. Referenced by main(). 
 
 | 
| 
 | 
| 
 Definition at line 1233 of file editreg.c. References c, FALSE, NULL, and TRUE. Referenced by main(). 
 
 | 
| 
 | ||||||||||||
| 
 Definition at line 678 of file editreg.c. References FALSE, NULL, String, and TRUE. Referenced by FixDisk(). 
 
 | 
| 
 | 
| 
 Definition at line 1325 of file editreg.c. References CurrentDirectory. Referenced by GetCommand(). 
 
 | 
| 
 | ||||||||||||||||
| 
 Definition at line 1957 of file editreg.c. References ChangeMemberState(), and Group. Referenced by main(). 
 
 | 
| 
 | ||||||||||||||||
| 
 Definition at line 1891 of file editreg.c. References ChangeMemberState(), and Group. Referenced by main(). 
 
 | 
| 
 | 
| 
 Definition at line 866 of file editreg.c. References FALSE, L, RtlUnicodeStringToAnsiString(), and WORK_BUFFER_SIZE. Referenced by Directory(), and List(). 
 
 | 
| 
 | 
| Initial value: 
 Definition at line 269 of file editreg.c. Referenced by main(). | 
| 
 | 
| 
 Definition at line 314 of file editreg.c. Referenced by GetArgumentString(), GetCommand(), LdrpInitializeProcess(), LdrShutdownProcess(), and RtlCreateProcessParameters(). | 
| 
 | 
| 
 Definition at line 226 of file editreg.c. Referenced by GetCommand(), and main(). | 
| 
 | 
| 
 Definition at line 184 of file editreg.c. Referenced by GetCommand(), GetConsoleCommandHistoryA(), GetConsoleCommandHistoryInternal(), GetConsoleCommandHistoryW(), and main(). | 
| 
 | 
| 
 Definition at line 308 of file editreg.c. Referenced by main(), PromptUser(), and RtlCreateProcessParameters(). | 
| 
 | 
| 
 Definition at line 338 of file editreg.c. Referenced by FtDeleteKey(), FtDeleteValue(), FtOpenKey(), FtSetValue(), GetCommand(), and main(). | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| Initial value: | 
| 
 | 
| Initial value: | 
| 
 | 
| Initial value: | 
| 
 | 
| Initial value: 
 Definition at line 46 of file editreg.c. Referenced by FindTypeString(), and main(). | 
| 
 | 
| Initial value: 
 Definition at line 60 of file editreg.c. Referenced by FindTypeString(), and main(). | 
| 
 | 
| 
 Definition at line 332 of file editreg.c. Referenced by IopDeviceCapabilitiesToRegistry(), LdrpGetFileVersion(), main(), and WriteBatchResults(). | 
| 
 | 
| 
 Definition at line 302 of file editreg.c. Referenced by ListDrivers(), and main(). | 
 1.3.7
 1.3.7