📄 drv.cod
字号:
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 + -