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

📄 msgout.cod

📁 对触摸屏的接口函数(DDI DDSI)以及调用关系作了详细介绍 可作为出次接触Touch Driver的开发人员研究Touch的一个很好的起点
💻 COD
📖 第 1 页 / 共 3 页
字号:
	DCB	0x0, "P", 0x0, "I", 0x0, "D", 0x0, " ", 0x0, "=", 0x0, " "
	DCB	0x0, "%", 0x0, "0", 0x0, "8", 0x0, "x", 0x0, 0xd, 0x0, 0xa
	DCB	0x0, 0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_1GC@BGBCAIMB@?$AAW?$AAr?$AAi?$AAt?$AAe?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?0?$AA?5?$AAP?$AAI?$AAD?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AA0@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GC@BGBCAIMB@?$AAW?$AAr?$AAi?$AAt?$AAe?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?0?$AA?5?$AAP?$AAI?$AAD?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AA0@| DCB "W"
	DCB	0x0, "r", 0x0, "i", 0x0, "t", 0x0, "e", 0x0, " ", 0x0, "F"
	DCB	0x0, "i", 0x0, "l", 0x0, "e", 0x0, ",", 0x0, " ", 0x0, "P"
	DCB	0x0, "I", 0x0, "D", 0x0, " ", 0x0, "=", 0x0, " ", 0x0, "%"
	DCB	0x0, "0", 0x0, "8", 0x0, "x", 0x0, ",", 0x0, " ", 0x0, "g"
	DCB	0x0, "_", 0x0, "d", 0x0, "w", 0x0, "C", 0x0, "u", 0x0, "r"
	DCB	0x0, "r", 0x0, "e", 0x0, "n", 0x0, "t", 0x0, "L", 0x0, "e"
	DCB	0x0, "n", 0x0, "g", 0x0, "t", 0x0, "h", 0x0, " ", 0x0, "="
	DCB	0x0, " ", 0x0, "%", 0x0, "d", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
	DCB	0x0					; `string'
; Function compile flags: /Ogsy
; File f:\wm602\platform\galaxyii\platform\mainstoneii\src\drivers\touch\msgout.c

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

  00000		 |WriteDbgMsgBufferToFile| PROC

; 229  : {

  00000		 |$L37552|
  00000	e92d41f0	 stmdb       sp!, {r4 - r8, lr}
  00004	e24dd010	 sub         sp, sp, #0x10
  00008		 |$M37550|

; 230  : 	void *pMsgOutBuffer = NULL ;
; 231  : 	DWORD dwWriteSize = 0 ;
; 232  : 	HANDLE  hFile = NULL ;
; 233  : 
; 234  : 	NKDbgPrintfW(TEXT("Write File, PID = %08x, g_dwCurrentLength = %d\r\n"),
; 235  : 		GetCurrentProcessId(), g_dwCurrentLength) ;

  00008	e59f60ec	 ldr         r6, [pc, #0xEC]
  0000c	e3a0700c	 mov         r7, #0xC
  00010	e3a03000	 mov         r3, #0
  00014	e5962004	 ldr         r2, [r6, #4]
  00018	e2477b0e	 sub         r7, r7, #0xE, 22
  0001c	e59f00d4	 ldr         r0, [pc, #0xD4]
  00020	e58d300c	 str         r3, [sp, #0xC]
  00024	e5971000	 ldr         r1, [r7]
  00028	eb000000	 bl          NKDbgPrintfW

; 236  : 
; 237  : 	if ( g_pVirtureBuffer && (g_dwCurrentLength>0) )

  0002c	e596300c	 ldr         r3, [r6, #0xC]
  00030	e3530000	 cmp         r3, #0
  00034	0a000027	 beq         |$L37441|
  00038	e5963004	 ldr         r3, [r6, #4]
  0003c	e3530000	 cmp         r3, #0
  00040	0a000024	 beq         |$L37441|

; 238  : 	{
; 239  : 		pMsgOutBuffer = (void *)CreateStaticMapping(g_dwPhysBuffer>>8, g_dwTotalLength) ;		

  00044	e5960008	 ldr         r0, [r6, #8]
  00048	e5961000	 ldr         r1, [r6]
  0004c	e1a00420	 mov         r0, r0, lsr #8
  00050	eb000000	 bl          CreateStaticMapping
  00054	e1a05000	 mov         r5, r0

; 240  : 
; 241  : 		hFile = CreateFile(
; 242  : 			g_szMsgFileName,              // File to open
; 243  : 			GENERIC_WRITE,                      // Open for I/O
; 244  : 			0,                                  // No Share for I/O
; 245  : 			NULL,                               // No security
; 246  : 			OPEN_ALWAYS,                        // Create if needed
; 247  : 			FILE_ATTRIBUTE_NORMAL,              // Normal file
; 248  : 			NULL);

  00058	e59f0094	 ldr         r0, [pc, #0x94]
  0005c	e3a0e080	 mov         lr, #0x80
  00060	e3a04004	 mov         r4, #4
  00064	e3a08000	 mov         r8, #0
  00068	e3a03000	 mov         r3, #0
  0006c	e3a02000	 mov         r2, #0
  00070	e3a01101	 mov         r1, #1, 2
  00074	e58d8008	 str         r8, [sp, #8]
  00078	e58de004	 str         lr, [sp, #4]
  0007c	e58d4000	 str         r4, [sp]
  00080	eb000000	 bl          CreateFileW

; 249  : 		SetFilePointer(hFile, 0, NULL, FILE_END);       /* append!              */

  00084	e3a03002	 mov         r3, #2
  00088	e3a02000	 mov         r2, #0
  0008c	e3a01000	 mov         r1, #0
  00090	e1a04000	 mov         r4, r0
  00094	eb000000	 bl          SetFilePointer

; 250  : 		WriteFile(hFile, pMsgOutBuffer, g_dwCurrentLength, &dwWriteSize, NULL);

  00098	e5962004	 ldr         r2, [r6, #4]
  0009c	e28d300c	 add         r3, sp, #0xC
  000a0	e1a01005	 mov         r1, r5
  000a4	e1a00004	 mov         r0, r4
  000a8	e58d8000	 str         r8, [sp]
  000ac	eb000000	 bl          WriteFile

; 251  : 		CloseHandle(hFile);

  000b0	e1a00004	 mov         r0, r4
  000b4	eb000000	 bl          CloseHandle

; 252  : 
; 253  : 		if ( dwWriteSize == 0 )

  000b8	e59d300c	 ldr         r3, [sp, #0xC]
  000bc	e3530000	 cmp         r3, #0
  000c0	1a000004	 bne         |$L37441|

; 254  : 		{
; 255  : 			NKDbgPrintfW(TEXT("Write File Failed, PID = %08x\r\n"), GetCurrentProcessId()) ;

  000c4	e5971000	 ldr         r1, [r7]
  000c8	e59f0020	 ldr         r0, [pc, #0x20]
  000cc	eb000000	 bl          NKDbgPrintfW

; 256  : 			return 0 ;

  000d0	e3a00000	 mov         r0, #0
  000d4	ea000002	 b           |$L37428|
  000d8		 |$L37441|

; 257  : 		}
; 258  : 	}
; 259  : 
; 260  : 	g_dwCurrentLength = 0 ;

  000d8	e3a03000	 mov         r3, #0
  000dc	e5863004	 str         r3, [r6, #4]

; 261  : 
; 262  : 	return 1 ;

  000e0	e3a00001	 mov         r0, #1
  000e4		 |$L37428|

; 263  : }

  000e4	e28dd010	 add         sp, sp, #0x10
  000e8	e8bd41f0	 ldmia       sp!, {r4 - r8, lr}
  000ec	e12fff1e	 bx          lr
  000f0		 |$L37555|
  000f0	00000000	 DCD         |??_C@_1EA@DNOAIBE@?$AAW?$AAr?$AAi?$AAt?$AAe?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?5?$AAF?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?0?$AA?5?$AAP@|
  000f4	00000000	 DCD         |g_szMsgFileName|
  000f8	00000000	 DCD         |??_C@_1GC@BGBCAIMB@?$AAW?$AAr?$AAi?$AAt?$AAe?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?0?$AA?5?$AAP?$AAI?$AAD?$AA?5?$AA?$DN?$AA?5?$AA?$CF?$AA0@|
  000fc	00000000	 DCD         |g_dwTotalLength|
  00100		 |$M37551|

			 ENDP  ; |WriteDbgMsgBufferToFile|

	EXPORT	|FreeMsgOutBuffer|
	EXPORT	|??_C@_1CE@CONFEPKJ@?$AAF?$AAr?$AAe?$AAe?$AA?5?$AAM?$AAs?$AAg?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?$AN?$AA?6?$AA?$AA@| [ DATA ] ; `string'
	IMPORT	|DeleteCriticalSection|
	IMPORT	|FreePhysMem|

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

  00000			 AREA	 |.pdata$$FreeMsgOutBuffer|, PDATA, SELECTION=5, ASSOC=|.text| { |FreeMsgOutBuffer| } ; comdat associative
|$T37561| DCD	|$L37560|
	DCD	0x40001c01

  00000			 AREA	 |.rdata| { |??_C@_1CE@CONFEPKJ@?$AAF?$AAr?$AAe?$AAe?$AA?5?$AAM?$AAs?$AAg?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?$AN?$AA?6?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CE@CONFEPKJ@?$AAF?$AAr?$AAe?$AAe?$AA?5?$AAM?$AAs?$AAg?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?$AN?$AA?6?$AA?$AA@| DCB "F"
	DCB	0x0, "r", 0x0, "e", 0x0, "e", 0x0, " ", 0x0, "M", 0x0, "s"
	DCB	0x0, "g", 0x0, " ", 0x0, "B", 0x0, "u", 0x0, "f", 0x0, "f"
	DCB	0x0, "e", 0x0, "r", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy

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

  00000		 |FreeMsgOutBuffer| PROC

; 84   : {

  00000		 |$L37560|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M37558|

; 85   : 	NKDbgPrintfW(TEXT("Free Msg Buffer\r\n")) ;

  00004	e59f0060	 ldr         r0, [pc, #0x60]
  00008	eb000000	 bl          NKDbgPrintfW

; 86   : 
; 87   : 	WriteDbgMsgBufferToFile() ;

  0000c	eb000000	 bl          WriteDbgMsgBufferToFile

; 88   : 
; 89   : 	g_nRefCount -- ;

  00010	e59f4050	 ldr         r4, [pc, #0x50]
  00014	e5943000	 ldr         r3, [r4]
  00018	e2533001	 subs        r3, r3, #1
  0001c	e5843000	 str         r3, [r4]

; 90   : 
; 91   : 	if ( g_nRefCount == 0 )

  00020	1a00000d	 bne         |$L37363|

; 92   : 	{
; 93   : 		if ( g_pVirtureBuffer )

  00024	e5940014	 ldr         r0, [r4, #0x14]
  00028	e3500000	 cmp         r0, #0
  0002c	0a000002	 beq         |$L37364|

; 94   : 		{
; 95   : 			FreePhysMem(g_pVirtureBuffer) ;

  00030	eb000000	 bl          FreePhysMem

; 96   : 			g_pVirtureBuffer = NULL ;

  00034	e3a03000	 mov         r3, #0
  00038	e5843014	 str         r3, [r4, #0x14]
  0003c		 |$L37364|

; 97   : 		}
; 98   : 		g_dwTotalLength = 0 ;    
; 99   : 		g_dwCurrentLength = 0 ;
; 100  : 		g_nMsgNumber = 0 ;
; 101  : 
; 102  : 		DeleteCriticalSection(&g_WriteBufferCS) ;

  0003c	e59f0020	 ldr         r0, [pc, #0x20]
  00040	e3a03000	 mov         r3, #0
  00044	e3a02000	 mov         r2, #0
  00048	e3a01000	 mov         r1, #0
  0004c	e5843008	 str         r3, [r4, #8]
  00050	e584200c	 str         r2, [r4, #0xC]
  00054	e5841004	 str         r1, [r4, #4]
  00058	eb000000	 bl          DeleteCriticalSection
  0005c		 |$L37363|

; 103  : 	}
; 104  : }

  0005c	e8bd4010	 ldmia       sp!, {r4, lr}
  00060	e12fff1e	 bx          lr
  00064		 |$L37563|
  00064	00000000	 DCD         |g_WriteBufferCS|
  00068	00000000	 DCD         |g_nRefCount|
  0006c	00000000	 DCD         |??_C@_1CE@CONFEPKJ@?$AAF?$AAr?$AAe?$AAe?$AA?5?$AAM?$AAs?$AAg?$AA?5?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?$AN?$AA?6?$AA?$AA@|
  00070		 |$M37559|

			 ENDP  ; |FreeMsgOutBuffer|

	EXPORT	|WriteBufferToBuffer|
	IMPORT	|EnterCriticalSection|
	IMPORT	|LeaveCriticalSection|
	IMPORT	|memcpy|

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

  00000			 AREA	 |.pdata$$WriteBufferToBuffer|, PDATA, SELECTION=5, ASSOC=|.text| { |WriteBufferToBuffer| } ; comdat associative
|$T37573| DCD	|$L37572|
	DCD	0x40002701
; Function compile flags: /Ogsy

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

  00000		 |WriteBufferToBuffer| PROC

; 194  : {

  00000		 |$L37572|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004		 |$M37570|
  00004	e1a05001	 mov         r5, r1
  00008	e1a06000	 mov         r6, r0

; 195  : 	void *pMsgOutBuffer = NULL ;
; 196  : 	
; 197  : 	if ( !g_pVirtureBuffer )

  0000c	e59f4084	 ldr         r4, [pc, #0x84]
  00010	e594300c	 ldr         r3, [r4, #0xC]
  00014	e3530000	 cmp         r3, #0
  00018	0a00001b	 beq         |$L37415|

; 198  : 	{
; 199  : 		return ;
; 200  : 	}
; 201  : 
; 202  : 	EnterCriticalSection(&g_WriteBufferCS) ;	

  0001c	e59f0070	 ldr         r0, [pc, #0x70]
  00020	eb000000	 bl          EnterCriticalSection

; 203  : 
; 204  : 	if ( (nLength + g_dwCurrentLength) > g_dwTotalLength )

  00024	e5943004	 ldr         r3, [r4, #4]
  00028	e5941000	 ldr         r1, [r4]
  0002c	e0833005	 add         r3, r3, r5
  00030	e1530001	 cmp         r3, r1
  00034	9a000001	 bls         |$L37419|

; 205  : 	{
; 206  : 		WriteDbgMsgBufferToFile() ;

  00038	eb000000	 bl          WriteDbgMsgBufferToFile
  0003c	e5941000	 ldr         r1, [r4]
  00040		 |$L37419|

; 207  : 	}
; 208  : 
; 209  : 	pMsgOutBuffer = (void *)CreateStaticMapping(g_dwPhysBuffer>>8, g_dwTotalLength) ;

  00040	e5940008	 ldr         r0, [r4, #8]
  00044	e1a00420	 mov         r0, r0, lsr #8
  00048	eb000000	 bl          CreateStaticMapping
  0004c	e3500000	 cmp         r0, #0

; 210  : 	if ( pMsgOutBuffer )

  00050	0a00000b	 beq         |$L37422|

; 211  : 	{
; 212  : 		if ( (nLength + g_dwCurrentLength) < g_dwTotalLength )

  00054	e594e004	 ldr         lr, [r4, #4]
  00058	e5942000	 ldr         r2, [r4]
  0005c	e08e3005	 add         r3, lr, r5
  00060	e1530002	 cmp         r3, r2
  00064	2a000006	 bcs         |$L37422|

; 213  : 		{
; 214  : 			memcpy((void*)((DWORD)pMsgOutBuffer+g_dwCurrentLength), pBuffer, nLength) ;

  00068	e1a02005	 mov         r2, r5
  0006c	e1a01006	 mov         r1, r6
  00070	e08e0000	 add         r0, lr, r0
  00074	eb000000	 bl          memcpy

; 215  : 
; 216  : 			g_dwCurrentLength += nLength ;

  00078	e5943004	 ldr         r3, [r4, #4]
  0007c	e0833005	 add         r3, r3, r5
  00080	e5843004	 str         r3, [r4, #4]
  00084		 |$L37422|

; 217  : 		}
; 218  : 	}
; 219  : 
; 220  : 	LeaveCriticalSection(&g_WriteBufferCS) ;

  00084	e59f0008	 ldr         r0, [pc, #8]
  00088	eb000000	 bl          LeaveCriticalSection
  0008c		 |$L37415|

; 221  : }

  0008c	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  00090	e12fff1e	 bx          lr
  00094		 |$L37575|
  00094	00000000	 DCD         |g_WriteBufferCS|
  00098	00000000	 DCD         |g_dwTotalLength|
  0009c		 |$M37571|

			 ENDP  ; |WriteBufferToBuffer|

	EXPORT	|ForceFlushBufferToFile|

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

⌨️ 快捷键说明

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