?? spihw.cod
字號:
00000 AREA |.rdata| { |??_C@_17KACEIPNC@?$AAK?$AAe?$AAy?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_17KACEIPNC@?$AAK?$AAe?$AAy?$AA?$AA@| DCB "K", 0x0, "e", 0x0, "y", 0x0
DCB 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1GG@LOGBBJNB@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAS?$AAP?$AAI?$AA?5?$AA?9?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?$CB?$AA?$CB?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GG@LOGBBJNB@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAS?$AAP?$AAI?$AA?5?$AA?9?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?$CB?$AA?$CB?$AA?5@| DCB "S"
DCB 0x0, "i", 0x0, "a", 0x0, "n", 0x0, "o", 0x0, " ", 0x0, "S"
DCB 0x0, "P", 0x0, "I", 0x0, " ", 0x0, "-", 0x0, " ", 0x0, "E"
DCB 0x0, "R", 0x0, "R", 0x0, "O", 0x0, "R", 0x0, "!", 0x0, "!"
DCB 0x0, " ", 0x0, "C", 0x0, "o", 0x0, "u", 0x0, "l", 0x0, "d"
DCB 0x0, " ", 0x0, "n", 0x0, "o", 0x0, "t", 0x0, " ", 0x0, "o"
DCB 0x0, "p", 0x0, "e", 0x0, "n", 0x0, " ", 0x0, "r", 0x0, "e"
DCB 0x0, "g", 0x0, "i", 0x0, "s", 0x0, "t", 0x0, "r", 0x0, "y"
DCB 0x0, " ", 0x0, "k", 0x0, "e", 0x0, "y", 0x0, ".", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1IK@EOBAPHCE@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAS?$AAP?$AAI?$AA?5?$AA?9?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?$CB?$AA?$CB?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1IK@EOBAPHCE@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAS?$AAP?$AAI?$AA?5?$AA?9?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?$CB?$AA?$CB?$AA?5@| DCB "S"
DCB 0x0, "i", 0x0, "a", 0x0, "n", 0x0, "o", 0x0, " ", 0x0, "S"
DCB 0x0, "P", 0x0, "I", 0x0, " ", 0x0, "-", 0x0, " ", 0x0, "E"
DCB 0x0, "R", 0x0, "R", 0x0, "O", 0x0, "R", 0x0, "!", 0x0, "!"
DCB 0x0, " ", 0x0, "A", 0x0, "l", 0x0, "l", 0x0, "o", 0x0, "c"
DCB 0x0, "a", 0x0, "t", 0x0, "i", 0x0, "n", 0x0, "g", 0x0, " "
DCB 0x0, "m", 0x0, "e", 0x0, "m", 0x0, "o", 0x0, "r", 0x0, "y"
DCB 0x0, " ", 0x0, "f", 0x0, "o", 0x0, "r", 0x0, " ", 0x0, "r"
DCB 0x0, "e", 0x0, "g", 0x0, "i", 0x0, "s", 0x0, "t", 0x0, "r"
DCB 0x0, "y", 0x0, " ", 0x0, "r", 0x0, "e", 0x0, "a", 0x0, "d"
DCB 0x0, "i", 0x0, "n", 0x0, "g", 0x0, " ", 0x0, "f", 0x0, "a"
DCB 0x0, "i", 0x0, "l", 0x0, "e", 0x0, "d", 0x0, ".", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |spiPhyGetRegistrySettings| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |spiPhyGetRegistrySettings| PROC
; 250 : {
00000 |$L39542|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 e24dd014 sub sp, sp, #0x14
00008 |$M39540|
00008 e1a06001 mov r6, r1
0000c e1a04000 mov r4, r0
; 251 : TCHAR* regKey;
; 252 : BOOL st;
; 253 : HKEY hKey;
; 254 : DWORD dataSize, type;
; 255 : regKey = (TCHAR *)LocalAlloc (LPTR, MAX_REG_KEY_SIZE);
00010 e3a01064 mov r1, #0x64
00014 e3a00040 mov r0, #0x40
00018 eb000000 bl LocalAlloc
0001c e1b05000 movs r5, r0
; 256 : if (regKey == NULL)
00020 1a000003 bne |$L38902|
; 257 : {
; 258 : RETAILMSG(1, (TEXT("Siano SPI - ERROR!! Allocating memory for registry reading failed.\r\n")));
00024 e59f0120 ldr r0, [pc, #0x120]
00028 eb000000 bl NKDbgPrintfW
; 259 : return FALSE;
0002c e3a04000 mov r4, #0
00030 ea00003d b |$L38894|
00034 |$L38902|
; 260 : }
; 261 :
; 262 :
; 263 : st = RegOpenKeyEx(HKEY_LOCAL_MACHINE, (LPCWSTR)Context, 0, 0, &hKey);
00034 e28d3008 add r3, sp, #8
00038 e58d3000 str r3, [sp]
0003c e3a03000 mov r3, #0
00040 e3a02000 mov r2, #0
00044 e1a01004 mov r1, r4
00048 e3a0010a mov r0, #0xA, 2
0004c eb000000 bl RegOpenKeyExW
00050 e3500000 cmp r0, #0
; 264 : if(st != ERROR_SUCCESS)
00054 0a000003 beq |$L38907|
00058 |$L39539|
; 265 : {
; 266 : RETAILMSG(1, (TEXT("Siano SPI - ERROR!! Could not open registry key.\r\n")));
00058 e59f00e8 ldr r0, [pc, #0xE8]
0005c |$L39538|
0005c eb000000 bl NKDbgPrintfW
00060 e3a04000 mov r4, #0
00064 ea00002e b |$L39531|
00068 |$L38907|
; 267 : LocalFree(regKey);
; 268 : return (FALSE);
; 269 : }
; 270 :
; 271 : dataSize=MAX_REG_KEY_SIZE;
; 272 : st = RegQueryValueEx( hKey,
; 273 : TEXT("Key"),
; 274 : NULL,
; 275 : &type,
; 276 : (LPBYTE)regKey,
; 277 : &dataSize);
00068 e59f10d4 ldr r1, [pc, #0xD4]
0006c e59d0008 ldr r0, [sp, #8]
00070 e3a04064 mov r4, #0x64
00074 e28de00c add lr, sp, #0xC
00078 e28d3010 add r3, sp, #0x10
0007c e3a02000 mov r2, #0
00080 e58d400c str r4, [sp, #0xC]
00084 e58de004 str lr, [sp, #4]
00088 e58d5000 str r5, [sp]
0008c eb000000 bl RegQueryValueExW
00090 e1a04000 mov r4, r0
; 278 :
; 279 : RegCloseKey(hKey);
00094 e59d0008 ldr r0, [sp, #8]
00098 eb000000 bl RegCloseKey
; 280 : if(st!=ERROR_SUCCESS)
0009c e3540000 cmp r4, #0
; 281 : {
; 282 : RETAILMSG(1, (TEXT("Siano SPI - ERROR!! Could not get registry key name.\r\n")));
000a0 159f0094 ldrne r0, [pc, #0x94]
000a4 1affffec bne |$L39538|
; 283 : LocalFree(regKey);
; 284 : return (FALSE);
; 285 : }
; 286 :
; 287 : // Now - read all the needed parameters for the driver from the registry.
; 288 :
; 289 :
; 290 : st = RegOpenKeyEx(HKEY_LOCAL_MACHINE, regKey, 0, 0, &hKey);
000a8 e28d3008 add r3, sp, #8
000ac e58d3000 str r3, [sp]
000b0 e3a03000 mov r3, #0
000b4 e3a02000 mov r2, #0
000b8 e1a01005 mov r1, r5
000bc e3a0010a mov r0, #0xA, 2
000c0 eb000000 bl RegOpenKeyExW
000c4 e3500000 cmp r0, #0
; 291 : if(st != ERROR_SUCCESS)
; 292 : {
; 293 : RETAILMSG(1, (TEXT("Siano SPI - ERROR!! Could not open registry key.\r\n")));
000c8 1affffe2 bne |$L39539|
; 294 : LocalFree(regKey);
; 295 : return (FALSE);
; 296 : }
; 297 :
; 298 :
; 299 : dataSize=MAX_REG_PATH_SIZE;
; 300 : st = RegQueryValueEx( hKey,
; 301 : L"DmaServicesPlugin",
; 302 : 0,
; 303 : &type,
; 304 : (LPBYTE)&pSpiPhy->DmaDllName,
; 305 : &dataSize);
000cc e59f106c ldr r1, [pc, #0x6C]
000d0 e59d0008 ldr r0, [sp, #8]
000d4 e3a07064 mov r7, #0x64
000d8 e28de00c add lr, sp, #0xC
000dc e2864004 add r4, r6, #4
000e0 e28d3010 add r3, sp, #0x10
000e4 e3a02000 mov r2, #0
000e8 e58d700c str r7, [sp, #0xC]
000ec e58de004 str lr, [sp, #4]
000f0 e58d4000 str r4, [sp]
000f4 eb000000 bl RegQueryValueExW
000f8 e3500000 cmp r0, #0
; 306 : if(st != ERROR_SUCCESS)
; 307 : { //Set default value if registry entry is not found.
; 308 : pSpiPhy->DmaDllName[0] = 0;
; 309 : }
; 310 :
; 311 :
; 312 : /*
; 313 : dataSize = sizeof(pSpiPhy->useSSPPort);
; 314 : st = RegQueryValueEx( hKey,
; 315 : L"useSSPPort",
; 316 : 0,
; 317 : &type,
; 318 : (LPBYTE)&pSpiPhy->useSSPPort,
; 319 : &dataSize);
; 320 :
; 321 : if(st != ERROR_SUCCESS)
; 322 : { //Set default value if registry entry is not found.
; 323 : pSpiPhy->useSSPPort = 1;
; 324 : RETAILMSG(1, (TEXT("Siano SPI :useSSPPort = 1\r\n")));
; 325 :
; 326 : }
; 327 :
; 328 : dataSize = sizeof(pSpiPhy->spiSysIntr);
; 329 : st = RegQueryValueEx( hKey,
; 330 : L"useSysIntr",
; 331 : 0,
; 332 : &type,
; 333 : (LPBYTE)&pSpiPhy->spiSysIntr,
; 334 : &dataSize);
; 335 :
; 336 : if(st != ERROR_SUCCESS)
; 337 : { //Set default value if registry entry is not found.
; 338 : pSpiPhy->spiSysIntr = 34;
; 339 : }
; 340 : if (pSpiPhy->spiSysIntr == 0xffff)
; 341 : {
; 342 : DWORD Irq_GpioXX_2;
; 343 : Irq_GpioXX_2 = DEFAULT_IRQ_GPIOXX_2;//consonance irq number
; 344 : RETAILMSG(1, (TEXT("Irq Number = %d!!!\r\n"),DEFAULT_IRQ_GPIOXX_2));
; 345 : if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &Irq_GpioXX_2, sizeof(DWORD), &pSpiPhy->spiSysIntr, sizeof(DWORD), NULL))
; 346 : {
; 347 : RETAILMSG(1, (TEXT("SPI : IOCTL_HAL_REQUEST_SYSINTR failed (x%08x)\r\n"), GetLastError()));
; 348 : }
; 349 : else
; 350 : {
; 351 : RETAILMSG(1, (TEXT("SPI : IOCTL_HAL_REQUEST_SYSINTR Succeded SysIntr %d\r\n"), pSpiPhy->spiSysIntr));
; 352 : }
; 353 : }
; 354 :
; 355 : dataSize = sizeof(pSpiPhy->novaDevice);
; 356 : st = RegQueryValueEx( hKey,
; 357 : L"novaDevice",
; 358 : 0,
; 359 : &type,
; 360 : (LPBYTE)&pSpiPhy->novaDevice,
; 361 : &dataSize);
; 362 :
; 363 : if(st != ERROR_SUCCESS)
; 364 : { //Set default value if registry entry is not found.
; 365 : pSpiPhy->novaDevice = FALSE;
; 366 : }
; 367 :
; 368 : dataSize = sizeof(pSpiPhy->novaIntrPin);
; 369 : st = RegQueryValueEx( hKey,
; 370 : L"novaIntrPin",
; 371 : 0,
; 372 : &type,
; 373 : (LPBYTE)&pSpiPhy->novaIntrPin,
; 374 : &dataSize);
; 375 :
; 376 : if(st != ERROR_SUCCESS)
; 377 : { //Set default value if registry entry is not found.
; 378 : pSpiPhy->novaIntrPin = 16;
; 379 : }
; 380 :
; 381 : */
; 382 :
; 383 : st = RegCloseKey(hKey);
000fc e59d0008 ldr r0, [sp, #8]
00100 e3a04000 mov r4, #0
00104 15c64004 strneb r4, [r6, #4]
00108 eb000000 bl RegCloseKey
0010c e3500000 cmp r0, #0
; 384 : if(st!=ERROR_SUCCESS)
00110 0a000002 beq |$L38920|
; 385 : {
; 386 : RETAILMSG(1, (TEXT("Siano SPI - ERROR!! Could not get registry key name.\r\n")));
00114 e59f0020 ldr r0, [pc, #0x20]
00118 eb000000 bl NKDbgPrintfW
0011c ea000000 b |$L39531|
00120 |$L38920|
00120 e3a04001 mov r4, #1
00124 |$L39531|
; 387 : LocalFree(regKey);
; 388 : return (FALSE);
; 389 : }
; 390 :
; 391 : LocalFree(regKey);
00124 e1a00005 mov r0, r5
00128 eb000000 bl LocalFree
; 392 : return (TRUE);
0012c |$L38894|
; 259 : return FALSE;
0012c e1a00004 mov r0, r4
; 393 :
; 394 : }
00130 e28dd014 add sp, sp, #0x14
00134 e8bd40f0 ldmia sp!, {r4 - r7, lr}
00138 e12fff1e bx lr
0013c |$L39545|
0013c 00000000 DCD |??_C@_1GO@DOKPPNLL@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAS?$AAP?$AAI?$AA?5?$AA?9?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?$CB?$AA?$CB?$AA?5@|
00140 00000000 DCD |??_C@_1CE@IKFNODDM@?$AAD?$AAm?$AAa?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AAs?$AAP?$AAl?$AAu?$AAg?$AAi?$AAn?$AA?$AA@|
00144 00000000 DCD |??_C@_17KACEIPNC@?$AAK?$AAe?$AAy?$AA?$AA@|
00148 00000000 DCD |??_C@_1GG@LOGBBJNB@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAS?$AAP?$AAI?$AA?5?$AA?9?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?$CB?$AA?$CB?$AA?5@|
0014c 00000000 DCD |??_C@_1IK@EOBAPHCE@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAS?$AAP?$AAI?$AA?5?$AA?9?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?$CB?$AA?$CB?$AA?5@|
00150 |$M39541|
ENDP ; |spiPhyGetRegistrySettings|
EXPORT |??_C@_1HK@GOKELIML@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAa?$AAc?$AAt?$AAi?$AAv?$AAa?$AAt?$AAe?$AAD?$AAM?$AAA?$AAS@| [ DATA ] ; `string'
EXPORT |??_C@_1JC@FGCOOMKG@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAa?$AAc?$AAt?$AAi?$AAv?$AAa?$AAt?$AAe?$AAD?$AAM?$AAA?$AAS@| [ DATA ] ; `string'
EXPORT |??_C@_1IG@CPCFIGAI@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAa?$AAc?$AAt?$AAi?$AAv?$AAa?$AAt?$AAe?$AAD?$AAM?$AAA?$AAS@| [ DATA ] ; `string'
EXPORT |??_C@_1CC@PDLHBDMG@?$AAD?$AAM?$AAA?$AA_?$AAS?$AAe?$AAt?$AAU?$AAp?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1CE@PKEIJDNP@?$AAD?$AAM?$AAA?$AA_?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1CE@MPDJICKO@?$AAD?$AAM?$AAA?$AA_?$AAR?$AAe?$AAm?$AAo?$AAv?$AAe?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1II@GNDKDFJK@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAa?$AAc?$AAt?$AAi?$AAv?$AAa?$AAt?$AAe?$AAD?$AAM?$AAA?$AAS@| [ DATA ] ; `string'
IMPORT |LoadLibraryW|
IMPORT |FreeLibrary|
IMPORT |GetProcAddressW|
00000 AREA |.text| { |activateDMAService| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$activateDMAService|, PDATA, SELECTION=5, ASSOC=|.text| { |activateDMAService| } ; comdat associative
|$T39559| DCD |$L39558|
DCD 0x40008602
00000 AREA |.rdata| { |??_C@_1II@GNDKDFJK@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAa?$AAc?$AAt?$AAi?$AAv?$AAa?$AAt?$AAe?$AAD?$AAM?$AAA?$AAS@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1II@GNDKDFJK@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAa?$AAc?$AAt?$AAi?$AAv?$AAa?$AAt?$AAe?$AAD?$AAM?$AAA?$AAS@| DCB "S"
DCB 0x0, "m", 0x0, "s", 0x0, "S", 0x0, "p", 0x0, "i", 0x0, ":"
DCB 0x0, " ", 0x0, "a", 0x0, "c", 0x0, "t", 0x0, "i", 0x0, "v"
DCB 0x0, "a", 0x0, "t", 0x0, "e", 0x0, "D", 0x0, "M", 0x0, "A"
DCB 0x0, "S", 0x0, "e", 0x0, "r", 0x0, "v", 0x0, "i", 0x0, "c"
DCB 0x0, "e", 0x0, "(", 0x0, ")", 0x0, " ", 0x0, "C", 0x0, "o"
DCB 0x0, "u", 0x0, "l", 0x0, "d", 0x0, " ", 0x0, "n", 0x0, "o"
DCB 0x0, "t", 0x0, " ", 0x0, "f", 0x0, "i", 0x0, "n", 0x0, "d"
DCB 0x0, " ", 0x0, "D", 0x0, "M", 0x0, "A", 0x0, " ", 0x0, "l"
DCB 0x0, "i", 0x0, "b", 0x0, "r", 0x0, "a", 0x0, "r", 0x0, "y"
DCB 0x0, " ", 0x0, "r", 0x0, "o", 0x0, "u", 0x0, "t", 0x0, "i"
DCB 0x0, "n", 0x0, "e", 0x0, "s", 0x0, ".", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -