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

📄 sianospi.cod

📁 这是mobile6.0下的DMB驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:
	DCB	0x0, "r", 0x0, "i", 0x0, "v", 0x0, "e", 0x0, "r", 0x0, "s"
	DCB	0x0, "\\", 0x0, "B", 0x0, "u", 0x0, "i", 0x0, "l", 0x0, "t"
	DCB	0x0, "I", 0x0, "n", 0x0, "\\", 0x0, "S", 0x0, "i", 0x0, "a"
	DCB	0x0, "n", 0x0, "o", 0x0, "S", 0x0, "P", 0x0, "I", 0x0, 0x0
	DCB	0x0					; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |GetInstance| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |GetInstance| PROC

; 114  : {

  00000		 |$L38885|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004	e24dd018	 sub         sp, sp, #0x18
  00008		 |$M38883|
  00008	e1a05000	 mov         r5, r0

; 115  : 	HKEY hSpikey;
; 116  : 	LONG lRes;
; 117  : 	DWORD dwType;
; 118  : 	DWORD CurrInstancenum;
; 119  : 	DWORD DataSize;
; 120  : 	
; 121  : 	lRes = RegOpenKeyEx( 
; 122  : 						HKEY_LOCAL_MACHINE, 
; 123  : 						REG_PATH, 
; 124  : 						0,//N\A 
; 125  : 						0,//N\A
; 126  : 						 &hSpikey 
; 127  : 						);

  0000c	e59f10ac	 ldr         r1, [pc, #0xAC]
  00010	e28de008	 add         lr, sp, #8
  00014	e3a03000	 mov         r3, #0
  00018	e3a02000	 mov         r2, #0
  0001c	e3a0010a	 mov         r0, #0xA, 2
  00020	e58de000	 str         lr, [sp]
  00024	eb000000	 bl          RegOpenKeyExW
  00028	e3500000	 cmp         r0, #0

; 128  : 	if(lRes != ERROR_SUCCESS)
; 129  : 		return (-1);

  0002c	1a00001a	 bne         |$L38882|

; 130  : 
; 131  : 	DataSize=sizeof(DWORD);
; 132  : 	lRes = RegQueryValueEx( 
; 133  : 						  hSpikey, 
; 134  : 						  L"MiniPortInstance", 
; 135  : 						  0, 
; 136  : 						  &dwType, 
; 137  : 						  (LPBYTE)&CurrInstancenum, 
; 138  : 						  &DataSize 
; 139  : 						); 

  00030	e59f1084	 ldr         r1, [pc, #0x84]
  00034	e59d0008	 ldr         r0, [sp, #8]
  00038	e3a06004	 mov         r6, #4
  0003c	e28de00c	 add         lr, sp, #0xC
  00040	e28d4014	 add         r4, sp, #0x14
  00044	e28d3010	 add         r3, sp, #0x10
  00048	e3a02000	 mov         r2, #0
  0004c	e58d600c	 str         r6, [sp, #0xC]
  00050	e58de004	 str         lr, [sp, #4]
  00054	e58d4000	 str         r4, [sp]
  00058	eb000000	 bl          RegQueryValueExW
  0005c	e3500000	 cmp         r0, #0

; 140  : 	if(lRes!=ERROR_SUCCESS)	
; 141  : 	{
; 142  : 		RegCloseKey(hSpikey);

  00060	e59d0008	 ldr         r0, [sp, #8]

; 143  : 		return (-1);

  00064	1a00000b	 bne         |$L38881|

; 144  : 	}
; 145  : 	
; 146  : 	DataSize=MAX_MNPRT_NAME;
; 147  : 	lRes = RegQueryValueEx( 
; 148  : 						  hSpikey, 
; 149  : 						  L"MiniportName", 
; 150  : 						  0, 
; 151  : 						  &dwType, 
; 152  : 						  (LPBYTE)szName, 
; 153  : 						  &DataSize 
; 154  : 						); 

  00068	e59f1048	 ldr         r1, [pc, #0x48]
  0006c	e3a04040	 mov         r4, #0x40
  00070	e28de00c	 add         lr, sp, #0xC
  00074	e28d3010	 add         r3, sp, #0x10
  00078	e3a02000	 mov         r2, #0
  0007c	e58d400c	 str         r4, [sp, #0xC]
  00080	e58de004	 str         lr, [sp, #4]
  00084	e58d5000	 str         r5, [sp]
  00088	eb000000	 bl          RegQueryValueExW
  0008c	e3500000	 cmp         r0, #0

; 155  : 	if(lRes!=ERROR_SUCCESS)	
; 156  : 	{
; 157  : 		RegCloseKey(hSpikey);

  00090	e59d0008	 ldr         r0, [sp, #8]
  00094	0a000002	 beq         |$L38449|
  00098		 |$L38881|
  00098	eb000000	 bl          RegCloseKey
  0009c		 |$L38882|

; 158  : 		return (-1);

  0009c	e3e00000	 mvn         r0, #0
  000a0	ea000001	 b           |$L38433|
  000a4		 |$L38449|

; 159  : 	}
; 160  : 
; 161  : 	RegCloseKey(hSpikey);

  000a4	eb000000	 bl          RegCloseKey

; 162  : 	return CurrInstancenum;

  000a8	e59d0014	 ldr         r0, [sp, #0x14]
  000ac		 |$L38433|

; 163  : }

  000ac	e28dd018	 add         sp, sp, #0x18
  000b0	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  000b4	e12fff1e	 bx          lr
  000b8		 |$L38888|
  000b8	00000000	 DCD         |??_C@_1BK@KPLOIJDF@?$AAM?$AAi?$AAn?$AAi?$AAp?$AAo?$AAr?$AAt?$AAN?$AAa?$AAm?$AAe?$AA?$AA@|
  000bc	00000000	 DCD         |??_C@_1CC@KBENDKOI@?$AAM?$AAi?$AAn?$AAi?$AAP?$AAo?$AAr?$AAt?$AAI?$AAn?$AAs?$AAt?$AAa?$AAn?$AAc?$AAe?$AA?$AA@|
  000c0	00000000	 DCD         |??_C@_1DC@DJFBBKNH@?$AAD?$AAr?$AAi?$AAv?$AAe?$AAr?$AAs?$AA?2?$AAB?$AAu?$AAi?$AAl?$AAt?$AAI?$AAn?$AA?2?$AAS?$AAi?$AAa?$AAn@|
  000c4		 |$M38884|

			 ENDP  ; |GetInstance|

	EXPORT	|DllEntry|

  00000			 AREA	 |.text| { |DllEntry| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$DllEntry|, PDATA, SELECTION=5, ASSOC=|.text| { |DllEntry| } ; comdat associative
|$T38896| DCD	|$L38895|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |DllEntry| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |DllEntry| PROC

; 190  : {

  00000		 |$L38895|
  00000		 |$M38893|

; 191  :     BOOL bRc = TRUE;
; 192  :     
; 193  :     UNREFERENCED_PARAMETER(hDllHandle);
; 194  :     UNREFERENCED_PARAMETER(lpreserved);
; 195  :     
; 196  :     switch (dwReason) {
; 197  :         case DLL_PROCESS_ATTACH: 
; 198  : 			{
; 199  :             DEBUGREGISTER((HINSTANCE)hDllHandle);
; 200  :             DEBUGMSG(1,(_T("*** DLL_PROCESS_ATTACH - Current Process: 0x%x, ID: 0x%x ***\r\n"),
; 201  :                 GetCurrentProcess(), GetCurrentProcessId()));
; 202  : 	
; 203  : 			
; 204  : 			} 
; 205  : 			break;
; 206  : 			
; 207  :         case DLL_PROCESS_DETACH: 
; 208  : 			{
; 209  :             DEBUGMSG(1,(_T("*** DLL_PROCESS_DETACH - Current Process: 0x%x, ID: 0x%x ***\r\n"),
; 210  :                 GetCurrentProcess(), GetCurrentProcessId()));
; 211  : 
; 212  : 
; 213  : 			} 
; 214  : 			break;
; 215  : 			
; 216  :         default:
; 217  :             break;
; 218  :     }
; 219  : 	
; 220  :     return bRc;

  00000	e3a00001	 mov         r0, #1

; 221  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M38894|

			 ENDP  ; |DllEntry|

	IMPORT	|LocalFree|
	IMPORT	|DeactivateDevice|
	IMPORT	|smsspiphy_deinit|
	IMPORT	|TerminateThread|
	IMPORT	|CloseHandle|
	IMPORT	|HalFreeCommonBuffer|

  00000			 AREA	 |.text| { |FreeAllocatedResources| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$FreeAllocatedResources|, PDATA, SELECTION=5, ASSOC=|.text| { |FreeAllocatedResources| } ; comdat associative
|$T38906| DCD	|$L38905|
	DCD	0x40003302
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |FreeAllocatedResources| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |FreeAllocatedResources| PROC

; 225  : {

  00000		 |$L38905|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004	e24dd014	 sub         sp, sp, #0x14
  00008		 |$M38903|
  00008	e1b04000	 movs        r4, r0

; 226  : 	DMA_ADAPTER_OBJECT adapter;
; 227  : 
; 228  : 	if (pSpiDevExt)

  0000c	0a00002b	 beq         |$L38474|

; 229  : 	{
; 230  : 		if (pSpiDevExt->hSmsGenDrv != INVALID_HANDLE_VALUE)

  00010	e5940058	 ldr         r0, [r4, #0x58]
  00014	e3700001	 cmn         r0, #1
  00018	0a000002	 beq         |$L38476|

; 231  : 		{
; 232  : 			DeactivateDevice(pSpiDevExt->hSmsGenDrv);

  0001c	eb000000	 bl          DeactivateDevice

; 233  : 			pSpiDevExt->hSmsGenDrv = INVALID_HANDLE_VALUE;

  00020	e3e03000	 mvn         r3, #0
  00024	e5843058	 str         r3, [r4, #0x58]
  00028		 |$L38476|

; 234  : 		}
; 235  : 		if (pSpiDevExt->transferThread)

  00028	e5943050	 ldr         r3, [r4, #0x50]
  0002c	e3530000	 cmp         r3, #0
  00030	0a000004	 beq         |$L38478|

; 236  : 		{
; 237  : 			TerminateThread(pSpiDevExt->transferThread, 0);

  00034	e3a01000	 mov         r1, #0
  00038	e1a00003	 mov         r0, r3
  0003c	eb000000	 bl          TerminateThread

; 238  : 			CloseHandle(pSpiDevExt->transferThread);

  00040	e5940050	 ldr         r0, [r4, #0x50]
  00044	eb000000	 bl          CloseHandle
  00048		 |$L38478|

; 239  : 		}
; 240  : 		if (pSpiDevExt->transferMsgQueue)

  00048	e594304c	 ldr         r3, [r4, #0x4C]
  0004c	e3530000	 cmp         r3, #0

; 241  : 		{
; 242  : 			CloseHandle(pSpiDevExt->transferMsgQueue);

  00050	11a00003	 movne       r0, r3
  00054	1b000000	 blne        CloseHandle

; 243  : 		}
; 244  : 		if (pSpiDevExt->WriteOperation)

  00058	e5943048	 ldr         r3, [r4, #0x48]
  0005c	e3530000	 cmp         r3, #0

; 245  : 		{
; 246  : 			CloseHandle(pSpiDevExt->WriteOperation);

  00060	11a00003	 movne       r0, r3
  00064	1b000000	 blne        CloseHandle

; 247  : 		}
; 248  : 
; 249  : 		if (pSpiDevExt->dev.rxbuf)

  00068	e5943010	 ldr         r3, [r4, #0x10]
  0006c	e3530000	 cmp         r3, #0

; 250  : 		{
; 251  : 			LocalFree(pSpiDevExt->dev.rxbuf);

  00070	11a00003	 movne       r0, r3
  00074	1b000000	 blne        LocalFree

; 252  : 		}
; 253  : 		if (pSpiDevExt->phyDrv)

  00078	e5943054	 ldr         r3, [r4, #0x54]
  0007c	e3a05000	 mov         r5, #0
  00080	e3530000	 cmp         r3, #0
  00084	0a000002	 beq         |$L38482|

; 254  : 		{
; 255  : 			smsspiphy_deinit(pSpiDevExt->phyDrv);

  00088	e1a00003	 mov         r0, r3
  0008c	eb000000	 bl          smsspiphy_deinit

; 256  : 			pSpiDevExt->phyDrv = NULL;

  00090	e5845054	 str         r5, [r4, #0x54]
  00094		 |$L38482|

; 257  : 		}
; 258  : 		if (pSpiDevExt->txbuf)

  00094	e5943040	 ldr         r3, [r4, #0x40]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -