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

📄 drv.cod

📁 CS4245 Wince驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:
; 232  : 	{
; 233  : 		switch( dwCode )

  001a4	e59f3334	 ldr         r3, [pc, #0x334]
  001a8	e1510003	 cmp         r1, r3
  001ac	0a000021	 beq         |$L36365|
  001b0	e59f3324	 ldr         r3, [pc, #0x324]
  001b4	e1510003	 cmp         r1, r3
  001b8	0a000012	 beq         |$L36373|
  001bc	e59f3314	 ldr         r3, [pc, #0x314]
  001c0	e1510003	 cmp         r1, r3
  001c4	1a00007e	 bne         |$L36427|

; 306  : 		case IOCTL_GETINVOL:
; 307  : 			if( pBufIn != NULL && dwLenIn == sizeof(DWORD) && pdwBufOut != NULL && dwLenOut == sizeof(DWORD))

  001c8	e3550000	 cmp         r5, #0
  001cc	0a000092	 beq         |$L37416|
  001d0	e3570004	 cmp         r7, #4
  001d4	1a000090	 bne         |$L37416|
  001d8	e59b2010	 ldr         r2, [r11, #0x10]
  001dc	e3520000	 cmp         r2, #0
  001e0	0a00008d	 beq         |$L37416|
  001e4	e59b3014	 ldr         r3, [r11, #0x14]
  001e8	e3530004	 cmp         r3, #4
  001ec	1a00008a	 bne         |$L37416|

; 308  : 			{
; 309  : 				ASSERT( ((DWORD)pBufIn & 3)  == 0 );
; 310  : 				DEBUGMSG(I2S_ZONE_IOCTL, (TEXT("   IOCTL_SETINMUTE : %d\r\n"), *(DWORD *)pBufIn ));
; 311  : 				result = pDeviceI2S->GetInVolume( *((DWORD *)pBufIn), (U16*)pdwBufOut);

  001f0	e5953000	 ldr         r3, [r5]
  001f4	e1a00006	 mov         r0, r6
  001f8	e1a01803	 mov         r1, r3, lsl #16
  001fc	e1a01821	 mov         r1, r1, lsr #16
  00200	eb000000	 bl          |?GetInVolume@BASEI2S@@QAAHGPAG@Z|

; 312  : 				if( pdwActualOut )	*pdwActualOut = 0;
; 313  : 			}
; 314  : 
; 315  : 			break;

  00204	ea00004e	 b           |$L37452|
  00208		 |$L36373|

; 295  : 		case IOCTL_SETOUTMUTE:
; 296  : 			RETAILMSG(1, (TEXT("Andrew!! IOCTL_SETOUTMUTE\n")));

  00208	e59f02c4	 ldr         r0, [pc, #0x2C4]
  0020c	eb000000	 bl          NKDbgPrintfW

; 297  : 			if( pBufIn != NULL && dwLenIn == sizeof(DWORD) )

  00210	e3550000	 cmp         r5, #0
  00214	0a000080	 beq         |$L37416|
  00218	e3570004	 cmp         r7, #4
  0021c	1a00007e	 bne         |$L37416|

; 298  : 			{
; 299  : 				RETAILMSG(1, (TEXT("Andrew!! IOCTL_SETOUTMUTE 2\n")));

  00220	e59f02a8	 ldr         r0, [pc, #0x2A8]
  00224	eb000000	 bl          NKDbgPrintfW

; 300  : 				ASSERT( ((DWORD)pBufIn & 3)  == 0 );
; 301  : 				DEBUGMSG(I2S_ZONE_IOCTL, (TEXT("   IOCTL_SETINMUTE : %d\r\n"), *(DWORD *)pBufIn ));
; 302  : 				result = pDeviceI2S->SetOutMute( *((DWORD *)pBufIn));

  00228	e5951000	 ldr         r1, [r5]
  0022c	e1a00006	 mov         r0, r6
  00230	eb000000	 bl          |?SetOutMute@BASEI2S@@QAAHH@Z|

; 303  : 				if( pdwActualOut )	*pdwActualOut = 0;
; 304  : 			}				
; 305  : 			break;

  00234	ea000042	 b           |$L37452|
  00238		 |$L36365|

; 284  : 		case IOCTL_SETINMUTE:
; 285  : 			RETAILMSG(1, (TEXT("Andrew!! IOCTL_SETINMUTE\t\n")));

  00238	e59f028c	 ldr         r0, [pc, #0x28C]
  0023c	eb000000	 bl          NKDbgPrintfW

; 286  : 			if( pBufIn != NULL && dwLenIn == sizeof(DWORD) )

  00240	e3550000	 cmp         r5, #0
  00244	0a000074	 beq         |$L37416|
  00248	e3570004	 cmp         r7, #4
  0024c	1a000072	 bne         |$L37416|

; 287  : 			{
; 288  : 				RETAILMSG(1, (TEXT("Andrew!! IOCTL_SETINMUTE\t\n")));

  00250	e59f0274	 ldr         r0, [pc, #0x274]
  00254	eb000000	 bl          NKDbgPrintfW

; 289  : 				ASSERT( ((DWORD)pBufIn & 3)  == 0 );
; 290  : 				DEBUGMSG(I2S_ZONE_IOCTL, (TEXT("   IOCTL_SETINMUTE : %d\r\n"), *(DWORD *)pBufIn ));
; 291  : 				result = pDeviceI2S->SetInMute( *((DWORD *)pBufIn));

  00258	e5951000	 ldr         r1, [r5]
  0025c	e1a00006	 mov         r0, r6
  00260	eb000000	 bl          |?SetInMute@BASEI2S@@QAAHH@Z|

; 292  : 				if( pdwActualOut )	*pdwActualOut = 0;
; 293  : 			}			
; 294  : 			break;	

  00264	ea000036	 b           |$L37452|
  00268		 |$L36391|

; 316  : 		case IOCTL_GETOUTVOL:
; 317  : 			if( pBufIn != NULL && dwLenIn == sizeof(DWORD) && pdwBufOut != NULL && dwLenOut == sizeof(DWORD))

  00268	e3550000	 cmp         r5, #0
  0026c	0a00006a	 beq         |$L37416|
  00270	e3570004	 cmp         r7, #4
  00274	1a000068	 bne         |$L37416|
  00278	e59b2010	 ldr         r2, [r11, #0x10]
  0027c	e3520000	 cmp         r2, #0
  00280	0a000065	 beq         |$L37416|
  00284	e59b3014	 ldr         r3, [r11, #0x14]
  00288	e3530004	 cmp         r3, #4
  0028c	1a000062	 bne         |$L37416|

; 318  : 			{
; 319  : 				ASSERT( ((DWORD)pBufIn & 3)  == 0 );
; 320  : 				DEBUGMSG(I2S_ZONE_IOCTL, (TEXT("   IOCTL_SETINMUTE : %d\r\n"), *(DWORD *)pBufIn ));
; 321  : 				result = pDeviceI2S->GetOutVolume( *((DWORD *)pBufIn), (U16*)pdwBufOut);

  00290	e5953000	 ldr         r3, [r5]
  00294	e1a00006	 mov         r0, r6
  00298	e1a01803	 mov         r1, r3, lsl #16
  0029c	e1a01821	 mov         r1, r1, lsr #16
  002a0	eb000000	 bl          |?GetOutVolume@BASEI2S@@QAAHGPAG@Z|

; 322  : 				if( pdwActualOut )	*pdwActualOut = 0;
; 323  : 			}
; 324  : 			break;

  002a4	ea000026	 b           |$L37452|
  002a8		 |$L37405|

; 228  : 
; 229  : 	DEBUGMSG(I2S_ZONE_IOCTL, (TEXT("+I2S_IOCntrol : 0x%08lx\r\n"), pOHandle));
; 230  : 
; 231  : 	__try
; 232  : 	{
; 233  : 		switch( dwCode )

  002a8	e59f3218	 ldr         r3, [pc, #0x218]
  002ac	e1510003	 cmp         r1, r3
  002b0	8a000039	 bhi         |$L37407|
  002b4	0a000035	 beq         |$L36421|
  002b8	e59f3204	 ldr         r3, [pc, #0x204]
  002bc	e1510003	 cmp         r1, r3
  002c0	0a000022	 beq         |$L36400|
  002c4	e59f31f4	 ldr         r3, [pc, #0x1F4]
  002c8	e1510003	 cmp         r1, r3
  002cc	0a00000d	 beq         |$L36409|
  002d0	e59f31e4	 ldr         r3, [pc, #0x1E4]
  002d4	e1510003	 cmp         r1, r3
  002d8	0a000007	 beq         |$L36418|
  002dc	e59f31d4	 ldr         r3, [pc, #0x1D4]
  002e0	e1510003	 cmp         r1, r3
  002e4	1a000036	 bne         |$L36427|

; 347  : 		case IOCTL_POWERUP:
; 348  : 			RETAILMSG(1, (TEXT("Andrew!! IOCTL_POWERUP:\t\n")));

  002e8	e59f01c4	 ldr         r0, [pc, #0x1C4]
  002ec	eb000000	 bl          NKDbgPrintfW

; 349  : 			pDeviceI2S->PowerUp();

  002f0	e1a00006	 mov         r0, r6
  002f4	eb000000	 bl          |?PowerUp@BASEI2S@@QAAHXZ|

; 350  : 			break;

  002f8	ea000047	 b           |$L37416|
  002fc		 |$L36418|

; 344  : 		case IOCTL_POWERDOWN:
; 345  : 			pDeviceI2S->PowerDown();

  002fc	e1a00006	 mov         r0, r6
  00300	eb000000	 bl          |?PowerDown@BASEI2S@@QAAHXZ|

; 346  : 			break;

  00304	ea000044	 b           |$L37416|
  00308		 |$L36409|

; 335  : 		case IOCTL_GETOUTMUTE:
; 336  : 			if( pBufIn != NULL && dwLenIn == sizeof(DWORD) && pdwBufOut != NULL && dwLenOut == sizeof(DWORD))

  00308	e3550000	 cmp         r5, #0
  0030c	0a000042	 beq         |$L37416|
  00310	e3570004	 cmp         r7, #4
  00314	1a000040	 bne         |$L37416|
  00318	e59b2010	 ldr         r2, [r11, #0x10]
  0031c	e3520000	 cmp         r2, #0
  00320	0a00003d	 beq         |$L37416|
  00324	e59b3014	 ldr         r3, [r11, #0x14]
  00328	e3530004	 cmp         r3, #4
  0032c	1a00003a	 bne         |$L37416|

; 337  : 			{
; 338  : 				ASSERT( ((DWORD)pBufIn & 3)  == 0 );
; 339  : 				DEBUGMSG(I2S_ZONE_IOCTL, (TEXT("   IOCTL_SETINMUTE : %d\r\n"), *(DWORD *)pBufIn ));
; 340  : 				result = pDeviceI2S->GetOutMute( *((DWORD *)pBufIn), (U16*)pdwBufOut);

  00330	e5953000	 ldr         r3, [r5]
  00334	e1a00006	 mov         r0, r6
  00338	e1a01803	 mov         r1, r3, lsl #16
  0033c	e1a01821	 mov         r1, r1, lsr #16
  00340	eb000000	 bl          |?GetOutMute@BASEI2S@@QAAHGPAG@Z|
  00344		 |$L37452|

; 341  : 				if( pdwActualOut )	*pdwActualOut = 0;

  00344	e1a04000	 mov         r4, r0
  00348	e50b4028	 str         r4, [r11, #-0x28]

; 342  : 			}			
; 343  : 			break;

  0034c	eaffff81	 b           |$L37450|
  00350		 |$L36400|

; 325  : 		case IOCTL_GETINMUTE:
; 326  : 			if( pBufIn != NULL && dwLenIn == sizeof(DWORD) && pdwBufOut != NULL && dwLenOut == sizeof(DWORD))

  00350	e3550000	 cmp         r5, #0
  00354	0a000030	 beq         |$L37416|
  00358	e3570004	 cmp         r7, #4
  0035c	1a00002e	 bne         |$L37416|
  00360	e59b2010	 ldr         r2, [r11, #0x10]
  00364	e3520000	 cmp         r2, #0
  00368	0a00002b	 beq         |$L37416|
  0036c	e59b3014	 ldr         r3, [r11, #0x14]
  00370	e3530004	 cmp         r3, #4
  00374	1a000028	 bne         |$L37416|

; 327  : 			{
; 328  : 				ASSERT( ((DWORD)pBufIn & 3)  == 0 );
; 329  : 				DEBUGMSG(I2S_ZONE_IOCTL, (TEXT("   IOCTL_SETINMUTE : %d\r\n"), *(DWORD *)pBufIn ));
; 330  : 				result = pDeviceI2S->GetInMute( *((DWORD *)pBufIn), (U16*)pdwBufOut);

  00378	e5953000	 ldr         r3, [r5]
  0037c	e1a00006	 mov         r0, r6
  00380	e1a01803	 mov         r1, r3, lsl #16
  00384	e1a01821	 mov         r1, r1, lsr #16
  00388	eb000000	 bl          |?GetInMute@BASEI2S@@QAAHGPAG@Z|

; 331  : 				if( pdwActualOut )	*pdwActualOut = 0;
; 332  : 			}
; 333  : 
; 334  : 			break;

  0038c	eaffffec	 b           |$L37452|
  00390		 |$L36421|

; 351  : 
; 352  : 		case IOCTL_STARTOUTDMA:
; 353  : //			RETAILMSG(1, (TEXT("Andrew!! IOCTL_STARTOUTDMA:\t\n")));
; 354  : 			pDeviceI2S->StartOutDMA();

  00390	e1a00006	 mov         r0, r6
  00394	eb000000	 bl          |?StartOutDMA@BASEI2S@@QAAXXZ|

; 355  : 			result = TRUE;
; 356  : 			break;

  00398	ea00001d	 b           |$L37448|
  0039c		 |$L37407|

; 228  : 
; 229  : 	DEBUGMSG(I2S_ZONE_IOCTL, (TEXT("+I2S_IOCntrol : 0x%08lx\r\n"), pOHandle));
; 230  : 
; 231  : 	__try
; 232  : 	{
; 233  : 		switch( dwCode )

  0039c	e3a0320f	 mov         r3, #0xF, 4
  003a0	e3833d81	 orr         r3, r3, #0x81, 26
  003a4	e1510003	 cmp         r1, r3
  003a8	0a000015	 beq         |$L36422|
  003ac	e59f30fc	 ldr         r3, [pc, #0xFC]
  003b0	e1510003	 cmp         r1, r3
  003b4	0a00000f	 beq         |$L36424|
  003b8	e59f30ec	 ldr         r3, [pc, #0xEC]
  003bc	e1510003	 cmp         r1, r3
  003c0	0a000007	 beq         |$L36425|
  003c4		 |$L36427|

⌨️ 快捷键说明

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