⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spihw.cod

📁 这是mobile6.0下的DMB驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:

  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 + -