📄 registry.cod
字号:
00269 8d 4d fc lea ecx, DWORD PTR _notThereDefault$[ebp]
0026c 89 85 18 ff ff
ff mov DWORD PTR _paramTable$[ebp+4], eax
00272 c7 85 1c ff ff
ff 00 00 00 00 mov DWORD PTR _paramTable$[ebp+8], OFFSET FLAT:$SG14827
0027c 89 b5 24 ff ff
ff mov DWORD PTR _paramTable$[ebp+16], esi
00282 89 b5 2c ff ff
ff mov DWORD PTR _paramTable$[ebp+24], esi
00288 89 85 34 ff ff
ff mov DWORD PTR _paramTable$[ebp+32], eax
0028e c7 85 38 ff ff
ff 00 00 00 00 mov DWORD PTR _paramTable$[ebp+36], OFFSET FLAT:$SG14829
00298 89 b5 40 ff ff
ff mov DWORD PTR _paramTable$[ebp+44], esi
0029e 89 b5 48 ff ff
ff mov DWORD PTR _paramTable$[ebp+52], esi
002a4 89 85 50 ff ff
ff mov DWORD PTR _paramTable$[ebp+60], eax
002aa c7 85 54 ff ff
ff 00 00 00 00 mov DWORD PTR _paramTable$[ebp+64], OFFSET FLAT:$SG14831
002b4 89 bd 58 ff ff
ff mov DWORD PTR _paramTable$[ebp+68], edi
002ba 89 b5 5c ff ff
ff mov DWORD PTR _paramTable$[ebp+72], esi
002c0 89 b5 64 ff ff
ff mov DWORD PTR _paramTable$[ebp+80], esi
002c6 89 85 6c ff ff
ff mov DWORD PTR _paramTable$[ebp+88], eax
002cc c7 85 70 ff ff
ff 00 00 00 00 mov DWORD PTR _paramTable$[ebp+92], OFFSET FLAT:$SG14833
002d6 89 b5 78 ff ff
ff mov DWORD PTR _paramTable$[ebp+100], esi
002dc 89 75 80 mov DWORD PTR _paramTable$[ebp+108], esi
002df 89 45 88 mov DWORD PTR _paramTable$[ebp+116], eax
002e2 c7 45 8c 00 00
00 00 mov DWORD PTR _paramTable$[ebp+120], OFFSET FLAT:$SG14835
002e9 89 75 94 mov DWORD PTR _paramTable$[ebp+128], esi
002ec 89 75 9c mov DWORD PTR _paramTable$[ebp+136], esi
002ef 89 45 a4 mov DWORD PTR _paramTable$[ebp+144], eax
002f2 c7 45 a8 00 00
00 00 mov DWORD PTR _paramTable$[ebp+148], OFFSET FLAT:$SG14837
002f9 89 75 b0 mov DWORD PTR _paramTable$[ebp+156], esi
002fc 89 4d b4 mov DWORD PTR _paramTable$[ebp+160], ecx
; 147 : paramTable[5].DefaultLength = sizeof(ULONG);
002ff 89 75 b8 mov DWORD PTR _paramTable$[ebp+164], esi
; 148 :
; 149 : paramTable[6].Flags = RTL_QUERY_REGISTRY_DIRECT;
00302 89 45 c0 mov DWORD PTR _paramTable$[ebp+172], eax
; 150 : paramTable[6].Name = L"LogFifo";
00305 c7 45 c4 00 00
00 00 mov DWORD PTR _paramTable$[ebp+176], OFFSET FLAT:$SG14839
; 151 : paramTable[6].EntryContext = &DriverDefaultsPtr->LogFifoDefault;
0030c 8d 43 24 lea eax, DWORD PTR [ebx+36]
; 152 : paramTable[6].DefaultType = REG_DWORD;
; 153 : paramTable[6].DefaultData = ¬ThereDefault;
; 154 : paramTable[6].DefaultLength = sizeof(ULONG);
; 155 :
; 156 : Status = RtlQueryRegistryValues( RTL_REGISTRY_ABSOLUTE | RTL_REGISTRY_OPTIONAL,
; 157 : path,
; 158 : ¶mTable[0],
; 159 : NULL,
; 160 : NULL);
0030f 6a 00 push 0
00311 89 45 c8 mov DWORD PTR _paramTable$[ebp+180], eax
00314 8d 45 fc lea eax, DWORD PTR _notThereDefault$[ebp]
00317 89 45 d0 mov DWORD PTR _paramTable$[ebp+188], eax
0031a 8d 85 14 ff ff
ff lea eax, DWORD PTR _paramTable$[ebp]
00320 6a 00 push 0
00322 50 push eax
00323 ff 75 0c push DWORD PTR _path$[ebp]
00326 89 75 cc mov DWORD PTR _paramTable$[ebp+184], esi
00329 89 75 d4 mov DWORD PTR _paramTable$[ebp+192], esi
0032c 68 00 00 00 80 push -2147483648 ; 80000000H
00331 ff 15 00 00 00
00 call DWORD PTR __imp__RtlQueryRegistryValues@20
; 161 :
; 162 : if (!NT_SUCCESS(Status)) {
00337 33 c9 xor ecx, ecx
00339 89 45 08 mov DWORD PTR _Status$[ebp], eax
0033c 3b c1 cmp eax, ecx
0033e 7d 06 jge SHORT $L14844
; 163 : DriverDefaultsPtr->ShouldBreakOnEntry = 0;
00340 89 4b 10 mov DWORD PTR [ebx+16], ecx
; 164 : DriverDefaultsPtr->DebugLevel = 0;
00343 89 4b 0c mov DWORD PTR [ebx+12], ecx
$L14844:
; 165 : }
; 166 :
; 167 : //
; 168 : // Check to see if there was a forcefifo or an rxfifo size.
; 169 : // If there isn't then write out values so that they could
; 170 : // be adjusted later.
; 171 : //
; 172 :
; 173 : if (DriverDefaultsPtr->ForceFifoEnableDefault == notThereDefault) {
00346 8b 07 mov eax, DWORD PTR [edi]
00348 3b 45 fc cmp eax, DWORD PTR _notThereDefault$[ebp]
0034b 75 1c jne SHORT $L14965
; 174 :
; 175 : DriverDefaultsPtr->ForceFifoEnableDefault = SERIAL_FORCE_FIFO_DEFAULT;
; 176 : RtlWriteRegistryValue(
; 177 : RTL_REGISTRY_ABSOLUTE,
; 178 : path,
; 179 : L"ForceFifoEnable",
; 180 : REG_DWORD,
; 181 : &DriverDefaultsPtr->ForceFifoEnableDefault,
; 182 : sizeof(ULONG)
; 183 : );
0034d 56 push esi
0034e 57 push edi
0034f 56 push esi
00350 68 00 00 00 00 push OFFSET FLAT:$SG14847
00355 ff 75 0c push DWORD PTR _path$[ebp]
00358 c7 07 01 00 00
00 mov DWORD PTR [edi], 1
0035e 8b 3d 00 00 00
00 mov edi, DWORD PTR __imp__RtlWriteRegistryValue@24
00364 51 push ecx
00365 ff d7 call edi
00367 eb 06 jmp SHORT $L14845
$L14965:
00369 8b 3d 00 00 00
00 mov edi, DWORD PTR __imp__RtlWriteRegistryValue@24
$L14845:
; 184 :
; 185 : }
; 186 :
; 187 : if (DriverDefaultsPtr->RxFIFODefault == notThereDefault) {
0036f 8b 4d fc mov ecx, DWORD PTR _notThereDefault$[ebp]
00372 8d 43 14 lea eax, DWORD PTR [ebx+20]
00375 39 08 cmp DWORD PTR [eax], ecx
00377 75 15 jne SHORT $L14848
; 188 : DriverDefaultsPtr->RxFIFODefault = SERIAL_RX_FIFO_DEFAULT;
; 189 : RtlWriteRegistryValue(
; 190 : RTL_REGISTRY_ABSOLUTE,
; 191 : path,
; 192 : L"RxFIFO",
; 193 : REG_DWORD,
; 194 : &DriverDefaultsPtr->RxFIFODefault,
; 195 : sizeof(ULONG)
; 196 : );
00379 56 push esi
0037a 50 push eax
0037b 56 push esi
0037c 68 00 00 00 00 push OFFSET FLAT:$SG14850
00381 ff 75 0c push DWORD PTR _path$[ebp]
00384 c7 00 08 00 00
00 mov DWORD PTR [eax], 8
0038a 6a 00 push 0
0038c ff d7 call edi
$L14848:
; 197 : }
; 198 :
; 199 : if (DriverDefaultsPtr->TxFIFODefault == notThereDefault) {
0038e 8b 4d fc mov ecx, DWORD PTR _notThereDefault$[ebp]
00391 8d 43 18 lea eax, DWORD PTR [ebx+24]
00394 39 08 cmp DWORD PTR [eax], ecx
00396 75 15 jne SHORT $L14851
; 200 :
; 201 : DriverDefaultsPtr->TxFIFODefault = SERIAL_TX_FIFO_DEFAULT;
; 202 : RtlWriteRegistryValue(
; 203 : RTL_REGISTRY_ABSOLUTE,
; 204 : path,
; 205 : L"TxFIFO",
; 206 : REG_DWORD,
; 207 : &DriverDefaultsPtr->TxFIFODefault,
; 208 : sizeof(ULONG)
; 209 : );
00398 56 push esi
00399 50 push eax
0039a 56 push esi
0039b 68 00 00 00 00 push OFFSET FLAT:$SG14853
003a0 ff 75 0c push DWORD PTR _path$[ebp]
003a3 c7 00 0e 00 00
00 mov DWORD PTR [eax], 14 ; 0000000eH
003a9 6a 00 push 0
003ab ff d7 call edi
$L14851:
; 210 : }
; 211 :
; 212 :
; 213 : if (DriverDefaultsPtr->PermitShareDefault == notThereDefault) {
003ad 8b 4d fc mov ecx, DWORD PTR _notThereDefault$[ebp]
003b0 8d 43 1c lea eax, DWORD PTR [ebx+28]
003b3 39 08 cmp DWORD PTR [eax], ecx
003b5 75 12 jne SHORT $L14854
; 214 :
; 215 : DriverDefaultsPtr->PermitShareDefault = SERIAL_PERMIT_SHARE_DEFAULT;
; 216 : //
; 217 : // Only share if the user actual changes switch.
; 218 : //
; 219 :
; 220 : RtlWriteRegistryValue(
; 221 : RTL_REGISTRY_ABSOLUTE,
; 222 : path,
; 223 : L"PermitShare",
; 224 : REG_DWORD,
; 225 : &DriverDefaultsPtr->PermitShareDefault,
; 226 : sizeof(ULONG)
; 227 : );
003b7 56 push esi
003b8 83 20 00 and DWORD PTR [eax], 0
003bb 50 push eax
003bc 56 push esi
003bd 68 00 00 00 00 push OFFSET FLAT:$SG14856
003c2 ff 75 0c push DWORD PTR _path$[ebp]
003c5 6a 00 push 0
003c7 ff d7 call edi
$L14854:
; 228 :
; 229 : }
; 230 :
; 231 :
; 232 : if (DriverDefaultsPtr->LogFifoDefault == notThereDefault) {
003c9 8b 4d fc mov ecx, DWORD PTR _notThereDefault$[ebp]
003cc 8d 43 24 lea eax, DWORD PTR [ebx+36]
003cf 39 08 cmp DWORD PTR [eax], ecx
003d1 75 19 jne SHORT $L14857
; 233 :
; 234 : //
; 235 : // Wasn't there. After this load don't log
; 236 : // the message anymore. However this first
; 237 : // time log the message.
; 238 : //
; 239 :
; 240 : DriverDefaultsPtr->LogFifoDefault = SERIAL_LOG_FIFO_DEFAULT;
; 241 :
; 242 : RtlWriteRegistryValue(
; 243 : RTL_REGISTRY_ABSOLUTE,
; 244 : path,
; 245 : L"LogFifo",
; 246 : REG_DWORD,
; 247 : &DriverDefaultsPtr->LogFifoDefault,
; 248 : sizeof(ULONG)
; 249 : );
003d3 56 push esi
003d4 83 20 00 and DWORD PTR [eax], 0
003d7 50 push eax
003d8 56 push esi
003d9 68 00 00 00 00 push OFFSET FLAT:$SG14859
003de ff 75 0c push DWORD PTR _path$[ebp]
003e1 6a 00 push 0
003e3 ff d7 call edi
; 250 :
; 251 : DriverDefaultsPtr->LogFifoDefault = 1;
003e5 c7 43 24 01 00
00 00 mov DWORD PTR [ebx+36], 1
$L14857:
; 252 :
; 253 : }
; 254 :
; 255 : //
; 256 : // We don't need that path anymore.
; 257 : //
; 258 :
; 259 : if (path) {
; 260 : ExFreePool(path);
003ec ff 75 0c push DWORD PTR _path$[ebp]
003ef ff 15 00 00 00
00 call DWORD PTR __imp__ExFreePool@4
; 261 : }
; 262 :
; 263 : //
; 264 : // Set the defaults for other values
; 265 : //
; 266 : DriverDefaultsPtr->PermitSystemWideShare = FALSE;
003f5 83 63 20 00 and DWORD PTR [ebx+32], 0
; 267 :
; 268 : return (Status);
003f9 8b 45 08 mov eax, DWORD PTR _Status$[ebp]
003fc 5b pop ebx
$L14808:
003fd 5f pop edi
003fe 5e pop esi
; 269 : }
003ff c9 leave
00400 c2 08 00 ret 8
_SerialGetConfigDefaults@8 ENDP
INIT ENDS
PUBLIC _SerialGetRegistryKeyValue@20
EXTRN __imp__ZwQueryValueKey@24:NEAR
EXTRN _SerialDebugLevel:DWORD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -