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

📄 drv.cod

📁 CS4245 Wince驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:
	DCB	0x0, "N", 0x0, "M", 0x0, "U", 0x0, "T", 0x0, "E", 0x0, 0x9
	DCB	0x0, 0xa, 0x0, 0x0, 0x0			; `string'

  00000			 AREA	 |.rdata| { |??_C@_1DK@MHFNMFJP@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAS?$AAE?$AAT?$AAO?$AAU@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DK@MHFNMFJP@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAS?$AAE?$AAT?$AAO?$AAU@| DCB "A"
	DCB	0x0, "n", 0x0, "d", 0x0, "r", 0x0, "e", 0x0, "w", 0x0, "!"
	DCB	0x0, "!", 0x0, " ", 0x0, "I", 0x0, "O", 0x0, "C", 0x0, "T"
	DCB	0x0, "L", 0x0, "_", 0x0, "S", 0x0, "E", 0x0, "T", 0x0, "O"
	DCB	0x0, "U", 0x0, "T", 0x0, "M", 0x0, "U", 0x0, "T", 0x0, "E"
	DCB	0x0, " ", 0x0, "2", 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1DG@ONFHKJPN@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAS?$AAE?$AAT?$AAO?$AAU@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DG@ONFHKJPN@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAS?$AAE?$AAT?$AAO?$AAU@| DCB "A"
	DCB	0x0, "n", 0x0, "d", 0x0, "r", 0x0, "e", 0x0, "w", 0x0, "!"
	DCB	0x0, "!", 0x0, " ", 0x0, "I", 0x0, "O", 0x0, "C", 0x0, "T"
	DCB	0x0, "L", 0x0, "_", 0x0, "S", 0x0, "E", 0x0, "T", 0x0, "O"
	DCB	0x0, "U", 0x0, "T", 0x0, "M", 0x0, "U", 0x0, "T", 0x0, "E"
	DCB	0x0, 0xa, 0x0, 0x0, 0x0			; `string'

  00000			 AREA	 |.rdata| { |??_C@_1DK@MPJGFAJN@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAC?$AAO?$AAD?$AAE?$AAC@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DK@MPJGFAJN@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAC?$AAO?$AAD?$AAE?$AAC@| DCB "A"
	DCB	0x0, "n", 0x0, "d", 0x0, "r", 0x0, "e", 0x0, "w", 0x0, "!"
	DCB	0x0, "!", 0x0, " ", 0x0, "I", 0x0, "O", 0x0, "C", 0x0, "T"
	DCB	0x0, "L", 0x0, "_", 0x0, "C", 0x0, "O", 0x0, "D", 0x0, "E"
	DCB	0x0, "C", 0x0, "I", 0x0, "N", 0x0, "I", 0x0, "T", 0x0, " "
	DCB	0x0, "2", 0x0, 0x9, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1DK@DDMFAAD@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAC?$AAO?$AAD?$AAE?$AAC@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DK@DDMFAAD@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAC?$AAO?$AAD?$AAE?$AAC@| DCB "A"
	DCB	0x0, "n", 0x0, "d", 0x0, "r", 0x0, "e", 0x0, "w", 0x0, "!"
	DCB	0x0, "!", 0x0, " ", 0x0, "I", 0x0, "O", 0x0, "C", 0x0, "T"
	DCB	0x0, "L", 0x0, "_", 0x0, "C", 0x0, "O", 0x0, "D", 0x0, "E"
	DCB	0x0, "C", 0x0, "I", 0x0, "N", 0x0, "I", 0x0, "T", 0x0, " "
	DCB	0x0, "3", 0x0, 0x9, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1DG@KBAEDFCG@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAC?$AAO?$AAD?$AAE?$AAC@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DG@KBAEDFCG@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAC?$AAO?$AAD?$AAE?$AAC@| DCB "A"
	DCB	0x0, "n", 0x0, "d", 0x0, "r", 0x0, "e", 0x0, "w", 0x0, "!"
	DCB	0x0, "!", 0x0, " ", 0x0, "I", 0x0, "O", 0x0, "C", 0x0, "T"
	DCB	0x0, "L", 0x0, "_", 0x0, "C", 0x0, "O", 0x0, "D", 0x0, "E"
	DCB	0x0, "C", 0x0, "I", 0x0, "N", 0x0, "I", 0x0, "T", 0x0, 0x9
	DCB	0x0, 0xa, 0x0, 0x0, 0x0			; `string'

  00000			 AREA	 |.rdata| { |??_C@_1DI@GPOAFDFL@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAC?$AAO?$AAD?$AAE?$AAC@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DI@GPOAFDFL@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAC?$AAO?$AAD?$AAE?$AAC@| DCB "A"
	DCB	0x0, "n", 0x0, "d", 0x0, "r", 0x0, "e", 0x0, "w", 0x0, "!"
	DCB	0x0, "!", 0x0, " ", 0x0, "I", 0x0, "O", 0x0, "C", 0x0, "T"
	DCB	0x0, "L", 0x0, "_", 0x0, "C", 0x0, "O", 0x0, "D", 0x0, "E"
	DCB	0x0, "C", 0x0, "R", 0x0, "E", 0x0, "S", 0x0, "E", 0x0, "T"
	DCB	0x0, 0x9, 0x0, 0xa, 0x0, 0x0, 0x0	; `string'

  00000			 AREA	 |.rdata| { |??_C@_1DK@LLLPDHNA@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAC?$AAO?$AAD?$AAE?$AAC@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DK@LLLPDHNA@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAC?$AAO?$AAD?$AAE?$AAC@| DCB "A"
	DCB	0x0, "n", 0x0, "d", 0x0, "r", 0x0, "e", 0x0, "w", 0x0, "!"
	DCB	0x0, "!", 0x0, " ", 0x0, "I", 0x0, "O", 0x0, "C", 0x0, "T"
	DCB	0x0, "L", 0x0, "_", 0x0, "C", 0x0, "O", 0x0, "D", 0x0, "E"
	DCB	0x0, "C", 0x0, "D", 0x0, "E", 0x0, "I", 0x0, "N", 0x0, "I"
	DCB	0x0, "T", 0x0, 0x9, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1DE@IHGEBLEM@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAS?$AAE?$AAT?$AAI?$AAN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DE@IHGEBLEM@?$AAA?$AAn?$AAd?$AAr?$AAe?$AAw?$AA?$CB?$AA?$CB?$AA?5?$AAI?$AAO?$AAC?$AAT?$AAL?$AA_?$AAS?$AAE?$AAT?$AAI?$AAN@| DCB "A"
	DCB	0x0, "n", 0x0, "d", 0x0, "r", 0x0, "e", 0x0, "w", 0x0, "!"
	DCB	0x0, "!", 0x0, " ", 0x0, "I", 0x0, "O", 0x0, "C", 0x0, "T"
	DCB	0x0, "L", 0x0, "_", 0x0, "S", 0x0, "E", 0x0, "T", 0x0, "I"
	DCB	0x0, "N", 0x0, "V", 0x0, "O", 0x0, "L", 0x0, 0x9, 0x0, 0xa
	DCB	0x0, 0x0, 0x0				; `string'
; Function compile flags: /Ogsy

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

  00000	00000000	 DCD         |__C_specific_handler|
  00004	00000000	 DCD         |$T37456|

  00008		 |I2S_IOControl| PROC

; 223  : {

  00008		 |$L37457|
  00008	e1a0c00d	 mov         r12, sp
  0000c	e92d000f	 stmdb       sp!, {r0 - r3}
  00010	e92d58f0	 stmdb       sp!, {r4 - r7, r11, r12, lr}
  00014	e28db01c	 add         r11, sp, #0x1C
  00018	e24dd01c	 sub         sp, sp, #0x1C
  0001c		 |$L37454|
  0001c	e1a07003	 mov         r7, r3
  00020	e58b700c	 str         r7, [r11, #0xC]
  00024	e1a05002	 mov         r5, r2
  00028	e58b5008	 str         r5, [r11, #8]
  0002c	e58b1004	 str         r1, [r11, #4]
  00030	e58b0000	 str         r0, [r11]

; 224  : 	ASSERT( pOHandle != NULL );
; 225  : 	ASSERT( pOHandle->pDeviceI2S != NULL );
; 226  : 	DeviceI2S *pDeviceI2S = pOHandle->pDeviceI2S;
; 227  : 	BOOL result = FALSE;

  00034	e3a04000	 mov         r4, #0
  00038	e50b4028	 str         r4, [r11, #-0x28]
  0003c	e5906000	 ldr         r6, [r0]
  00040		 |$L37415|

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

  00040	e59f34c4	 ldr         r3, [pc, #0x4C4]
  00044	e1510003	 cmp         r1, r3
  00048	8a000096	 bhi         |$L37405|
  0004c	0a000085	 beq         |$L36391|
  00050	e59f34b0	 ldr         r3, [pc, #0x4B0]
  00054	e1510003	 cmp         r1, r3
  00058	8a000051	 bhi         |$L37406|
  0005c	0a000043	 beq         |$L36357|
  00060	e3a0320f	 mov         r3, #0xF, 4
  00064	e3833a02	 orr         r3, r3, #2, 20
  00068	e1510003	 cmp         r1, r3
  0006c	0a000026	 beq         |$L36329|
  00070	e59f348c	 ldr         r3, [pc, #0x48C]
  00074	e1510003	 cmp         r1, r3
  00078	0a00001e	 beq         |$L36341|
  0007c	e59f347c	 ldr         r3, [pc, #0x47C]
  00080	e1510003	 cmp         r1, r3
  00084	0a000016	 beq         |$L36344|
  00088	e59f346c	 ldr         r3, [pc, #0x46C]
  0008c	e1510003	 cmp         r1, r3
  00090	1a0000cb	 bne         |$L36427|

; 260  : 		case IOCTL_SETINVOL:
; 261  : 			RETAILMSG(1, (TEXT("Andrew!! IOCTL_SETINVOL\t\n")));

  00094	e59f045c	 ldr         r0, [pc, #0x45C]
  00098	eb000000	 bl          NKDbgPrintfW

; 262  : 			if( pBufIn != NULL && dwLenIn == sizeof(DWORD)*2 )

  0009c	e3550000	 cmp         r5, #0
  000a0	0a0000dd	 beq         |$L37416|
  000a4	e3570008	 cmp         r7, #8
  000a8	1a0000db	 bne         |$L37416|

; 263  : 			{
; 264  : 				RETAILMSG(1, (TEXT("Andrew!! IOCTL_SETINVOL\t\n")));

  000ac	e59f0444	 ldr         r0, [pc, #0x444]
  000b0	eb000000	 bl          NKDbgPrintfW

; 265  : 				ASSERT( ((DWORD)pBufIn & 3)  == 0 );
; 266  : 				DEBUGMSG(I2S_ZONE_IOCTL, (TEXT("   IOCTL_SETINVOL : %d\r\n"), *(DWORD *)pBufIn ));
; 267  : 				result = pDeviceI2S->SetInVolume( *((DWORD *)pBufIn), *((DWORD*)pBufIn+1),*((DWORD*)pBufIn+2));

  000b4	e5953008	 ldr         r3, [r5, #8]
  000b8	e5952004	 ldr         r2, [r5, #4]
  000bc	e5951000	 ldr         r1, [r5]
  000c0	e1a03803	 mov         r3, r3, lsl #16
  000c4	e1a03823	 mov         r3, r3, lsr #16
  000c8	e1a02802	 mov         r2, r2, lsl #16
  000cc	e1a02822	 mov         r2, r2, lsr #16
  000d0	e1a01801	 mov         r1, r1, lsl #16
  000d4	e1a01821	 mov         r1, r1, lsr #16
  000d8	e1a00006	 mov         r0, r6
  000dc	eb000000	 bl          |?SetInVolume@BASEI2S@@QAAHGGG@Z|

; 268  : 				if( pdwActualOut )	*pdwActualOut = 0;
; 269  : 			}
; 270  : 			
; 271  : 			break;	

  000e0	ea000097	 b           |$L37452|
  000e4		 |$L36344|

; 255  : 		case IOCTL_CODECDEINIT:
; 256  : 			RETAILMSG(1, (TEXT("Andrew!! IOCTL_CODECDEINIT\t\n")));

  000e4	e59f0408	 ldr         r0, [pc, #0x408]
  000e8	eb000000	 bl          NKDbgPrintfW

; 257  : 			result = pDeviceI2S->CodecDeInit();

  000ec	e1a00006	 mov         r0, r6
  000f0	eb000000	 bl          |?CodecDeInit@BASEI2S@@QAAHXZ|

; 258  : 			if( pdwActualOut )	*pdwActualOut = 0;
; 259  : 			break;

  000f4	ea000092	 b           |$L37452|
  000f8		 |$L36341|

; 250  : 		case IOCTL_CODECRESET:
; 251  : 			RETAILMSG(1, (TEXT("Andrew!! IOCTL_CODECRESET\t\n")));

  000f8	e59f03f0	 ldr         r0, [pc, #0x3F0]
  000fc	eb000000	 bl          NKDbgPrintfW

; 252  : 			result = pDeviceI2S->CodecReset();

  00100	e1a00006	 mov         r0, r6
  00104	eb000000	 bl          |?CodecReset@BASEI2S@@QAAHXZ|

; 253  : 			if( pdwActualOut )	*pdwActualOut = 0;
; 254  : 			break;

  00108	ea00008d	 b           |$L37452|
  0010c		 |$L36329|

; 234  : 		{
; 235  : 		case IOCTL_CODECINIT:
; 236  : 			RETAILMSG(1, (TEXT("Andrew!! IOCTL_CODECINIT\t\n")));

  0010c	e59f03d8	 ldr         r0, [pc, #0x3D8]
  00110	eb000000	 bl          NKDbgPrintfW

; 237  : 
; 238  : 			//MES_SetOutputValueBit(OEM_GPIO_I2S_RST, OEM_GPIO_I2S_RST_AL);
; 239  : 
; 240  : 			if( pdwBufOut != NULL && dwLenOut == sizeof(DWORD)*3)

  00114	e59b5010	 ldr         r5, [r11, #0x10]
  00118	e3550000	 cmp         r5, #0
  0011c	0a0000be	 beq         |$L37416|
  00120	e59b3014	 ldr         r3, [r11, #0x14]
  00124	e353000c	 cmp         r3, #0xC
  00128	1a0000bb	 bne         |$L37416|

; 241  : 			{
; 242  : 				RETAILMSG(1, (TEXT("Andrew!! IOCTL_CODECINIT 2\t\n")));

  0012c	e59f03b4	 ldr         r0, [pc, #0x3B4]
  00130	eb000000	 bl          NKDbgPrintfW

; 243  : 				ASSERT( ((DWORD)pdwBufOut & 3)  == 0 );
; 244  : 				DEBUGMSG(I2S_ZONE_IOCTL, (TEXT("   IOCTL_CODECINIT : %d\r\n"), *(DWORD *)pdwBufOut ));
; 245  : 				result = pDeviceI2S->CodecInit( (PDWORD)pdwBufOut , (PDWORD)pdwBufOut+1 , (PDWORD)pdwBufOut+2 );

  00134	e2853008	 add         r3, r5, #8
  00138	e2852004	 add         r2, r5, #4
  0013c	e1a01005	 mov         r1, r5
  00140	e1a00006	 mov         r0, r6
  00144	eb000000	 bl          |?CodecInit@BASEI2S@@QAAHPAK00@Z|
  00148	e1a04000	 mov         r4, r0

; 246  : 				RETAILMSG(1, (TEXT("Andrew!! IOCTL_CODECINIT 3\t\n")));

  0014c	e59f0390	 ldr         r0, [pc, #0x390]
  00150	e50b4028	 str         r4, [r11, #-0x28]
  00154	eb000000	 bl          NKDbgPrintfW
  00158		 |$L37450|

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

  00158	e59b3018	 ldr         r3, [r11, #0x18]
  0015c	e3530000	 cmp         r3, #0
  00160	0a0000ad	 beq         |$L37416|
  00164	e3a02000	 mov         r2, #0
  00168	e5832000	 str         r2, [r3]

; 248  : 			}
; 249  : 			break;

  0016c	ea0000aa	 b           |$L37416|
  00170		 |$L36357|

; 272  : 		case IOCTL_SETOUTVOL:
; 273  : //			RETAILMSG(1, (TEXT("Andrew!! IOCTL_SETOUTVOL\t\n")));
; 274  : 			if( pBufIn != NULL && dwLenIn == sizeof(DWORD)*2 )

  00170	e3550000	 cmp         r5, #0
  00174	0a0000a8	 beq         |$L37416|
  00178	e3570008	 cmp         r7, #8
  0017c	1a0000a6	 bne         |$L37416|

; 275  : 			{
; 276  : //				RETAILMSG(1, (TEXT("Andrew!! IOCTL_SETOUTVOL\t\n")));
; 277  : 				ASSERT( ((DWORD)pBufIn & 3)  == 0 );
; 278  : 				DEBUGMSG(I2S_ZONE_IOCTL, (TEXT("   IOCTL_SETOUTVOL : %d\r\n"), *(DWORD *)pBufIn ));
; 279  : 				result = pDeviceI2S->SetOutVolume( *((DWORD *)pBufIn), *((DWORD*)pBufIn+1) );

  00180	e5953004	 ldr         r3, [r5, #4]
  00184	e5951000	 ldr         r1, [r5]
  00188	e1a00006	 mov         r0, r6
  0018c	e1a02803	 mov         r2, r3, lsl #16
  00190	e1a02822	 mov         r2, r2, lsr #16
  00194	e1a01801	 mov         r1, r1, lsl #16
  00198	e1a01821	 mov         r1, r1, lsr #16
  0019c	eb000000	 bl          |?SetOutVolume@BASEI2S@@QAAHGG@Z|

; 280  : 				if( pdwActualOut )	*pdwActualOut = 0;
; 281  : 			}
; 282  : 
; 283  : 			break;	

  001a0	ea000067	 b           |$L37452|
  001a4		 |$L37406|

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

⌨️ 快捷键说明

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