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

📄 msgout.cod

📁 对触摸屏的接口函数(DDI DDSI)以及调用关系作了详细介绍 可作为出次接触Touch Driver的开发人员研究Touch的一个很好的起点
💻 COD
📖 第 1 页 / 共 3 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345 

	TTL	F:\WM602\PLATFORM\GALAXYII\Platform\MAINSTONEII\SRC\DRIVERS\touch\.\MSGOUT.c
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"/SECTION:share,RWS "
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|g_pVirtureBuffer| [ DATA ]
	EXPORT	|g_dwPhysBuffer| [ DATA ]
	EXPORT	|g_dwCurrentLength| [ DATA ]
	EXPORT	|g_dwTotalLength| [ DATA ]
	EXPORT	|g_nMsgNumber| [ DATA ]
	EXPORT	|g_nRefCount| [ DATA ]
	EXPORT	|g_bEnableAddTime| [ DATA ]

  00000			 AREA	 |.data|, DATA
	 COMMON	|g_szMsgFileName|, 0x208

	 COMMON	|g_WriteBufferCS|, 0x14

|g_bEnableAddTime| DCD 0x1

  00000			 AREA	 |share|, DATA
|g_nRefCount| DCD 0x0
|g_nMsgNumber| DCD 0x0
|g_dwTotalLength| DCD 0x0
|g_dwCurrentLength| DCD 0x0
|g_dwPhysBuffer| DCD 0x0
|g_pVirtureBuffer| DCD 0x0
	EXPORT	|GetCurrentProcessId|
; File f:\wm602\public\common\sdk\inc\kfuncs.h

  00000			 AREA	 |.text| { |GetCurrentProcessId| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$GetCurrentProcessId|, PDATA, SELECTION=5, ASSOC=|.text| { |GetCurrentProcessId| } ; comdat associative
|$T37496| DCD	|$L37495|
	DCD	0x40000400
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |GetCurrentProcessId| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |GetCurrentProcessId| PROC

; 324  : _inline DWORD GetCurrentProcessId(void) {

  00000		 |$L37495|
  00000		 |$M37493|

; 325  : 	return ((DWORD)(((HANDLE *)(PUserKData+SYSHANDLE_OFFSET))[SH_CURPROC]));

  00000	e3a0300c	 mov         r3, #0xC
  00004	e2433b0e	 sub         r3, r3, #0xE, 22
  00008	e5930000	 ldr         r0, [r3]

; 326  : }

  0000c	e12fff1e	 bx          lr
  00010		 |$M37494|

			 ENDP  ; |GetCurrentProcessId|

	EXPORT	|AllocMsgOutBuffer|
	EXPORT	|??_C@_1CK@JPPGDOHG@?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAC?$AAr?$AAe?$AAa?$AAt?$AAe?$AAd?$AA?$AN?$AA?6@| [ DATA ] ; `string'
	EXPORT	|??_C@_1DC@CIIOOELO@?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?5?$AAw?$AAi?$AAl?$AAl?$AA?5?$AAb?$AAe?$AA?5?$AAC?$AAr?$AAe?$AAa?$AAt@| [ DATA ] ; `string'
	EXPORT	|??_C@_1FE@ILBDNCJA@?$AA?2?$AAD?$AAB?$AAG?$AAM?$AAS?$AAG?$AA?2?$AA?$CF?$AA0?$AA4?$AAd?$AA_?$AA?$CF?$AA0?$AA2?$AAd?$AA_?$AA?$CF?$AA0@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BA@LKFFCPLL@?$AA?2?$AAD?$AAB?$AAG?$AAM?$AAS?$AAG?$AA?$AA@| [ DATA ] ; `string'
	IMPORT	|wsprintfW|
	IMPORT	|CreateDirectoryW|
	IMPORT	|InitializeCriticalSection|
	IMPORT	|NKDbgPrintfW|
	IMPORT	|__security_cookie|
	IMPORT	|__security_check_cookie|
	IMPORT	|wcscpy|
	IMPORT	|GetLocalTime|
	IMPORT	|AllocPhysMem|
	IMPORT	|DeleteFileW|
; File f:\wm602\platform\galaxyii\platform\mainstoneii\src\drivers\touch\msgout.c

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

  00000			 AREA	 |.pdata$$AllocMsgOutBuffer|, PDATA, SELECTION=5, ASSOC=|.text| { |AllocMsgOutBuffer| } ; comdat associative
|$T37509| DCD	|$L37508|
	DCD	0x40004a02

  00000			 AREA	 |.rdata| { |??_C@_1FE@ILBDNCJA@?$AA?2?$AAD?$AAB?$AAG?$AAM?$AAS?$AAG?$AA?2?$AA?$CF?$AA0?$AA4?$AAd?$AA_?$AA?$CF?$AA0?$AA2?$AAd?$AA_?$AA?$CF?$AA0@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FE@ILBDNCJA@?$AA?2?$AAD?$AAB?$AAG?$AAM?$AAS?$AAG?$AA?2?$AA?$CF?$AA0?$AA4?$AAd?$AA_?$AA?$CF?$AA0?$AA2?$AAd?$AA_?$AA?$CF?$AA0@| DCB "\\"
	DCB	0x0, "D", 0x0, "B", 0x0, "G", 0x0, "M", 0x0, "S", 0x0, "G"
	DCB	0x0, "\\", 0x0, "%", 0x0, "0", 0x0, "4", 0x0, "d", 0x0, "_"
	DCB	0x0, "%", 0x0, "0", 0x0, "2", 0x0, "d", 0x0, "_", 0x0, "%"
	DCB	0x0, "0", 0x0, "2", 0x0, "d", 0x0, "_", 0x0, "%", 0x0, "0"
	DCB	0x0, "2", 0x0, "d", 0x0, "_", 0x0, "%", 0x0, "0", 0x0, "2"
	DCB	0x0, "d", 0x0, "_", 0x0, "%", 0x0, "0", 0x0, "2", 0x0, "d"
	DCB	0x0, ".", 0x0, "t", 0x0, "x", 0x0, "t", 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BA@LKFFCPLL@?$AA?2?$AAD?$AAB?$AAG?$AAM?$AAS?$AAG?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BA@LKFFCPLL@?$AA?2?$AAD?$AAB?$AAG?$AAM?$AAS?$AAG?$AA?$AA@| DCB "\\"
	DCB	0x0, "D", 0x0, "B", 0x0, "G", 0x0, "M", 0x0, "S", 0x0, "G"
	DCB	0x0, 0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_1DC@CIIOOELO@?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?5?$AAw?$AAi?$AAl?$AAl?$AA?5?$AAb?$AAe?$AA?5?$AAC?$AAr?$AAe?$AAa?$AAt@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DC@CIIOOELO@?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?5?$AAw?$AAi?$AAl?$AAl?$AA?5?$AAb?$AAe?$AA?5?$AAC?$AAr?$AAe?$AAa?$AAt@| DCB "B"
	DCB	0x0, "u", 0x0, "f", 0x0, "f", 0x0, "e", 0x0, "r", 0x0, " "
	DCB	0x0, "w", 0x0, "i", 0x0, "l", 0x0, "l", 0x0, " ", 0x0, "b"
	DCB	0x0, "e", 0x0, " ", 0x0, "C", 0x0, "r", 0x0, "e", 0x0, "a"
	DCB	0x0, "t", 0x0, "e", 0x0, "d", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
	DCB	0x0					; `string'

  00000			 AREA	 |.rdata| { |??_C@_1CK@JPPGDOHG@?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAC?$AAr?$AAe?$AAa?$AAt?$AAe?$AAd?$AA?$AN?$AA?6@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CK@JPPGDOHG@?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAC?$AAr?$AAe?$AAa?$AAt?$AAe?$AAd?$AA?$AN?$AA?6@| DCB "B"
	DCB	0x0, "u", 0x0, "f", 0x0, "f", 0x0, "e", 0x0, "r", 0x0, " "
	DCB	0x0, "h", 0x0, "a", 0x0, "s", 0x0, " ", 0x0, "C", 0x0, "r"
	DCB	0x0, "e", 0x0, "a", 0x0, "t", 0x0, "e", 0x0, "d", 0x0, 0xd
	DCB	0x0, 0xa, 0x0, 0x0, 0x0			; `string'
; Function compile flags: /Ogsy

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

  00000		 |AllocMsgOutBuffer| PROC

; 42   : {	

  00000		 |$L37508|
  00000	e92d40f0	 stmdb       sp!, {r4 - r7, lr}
  00004	e24ddf8b	 sub         sp, sp, #0x8B, 30
  00008		 |$M37506|
  00008	e1a04001	 mov         r4, r1
  0000c	e1a07000	 mov         r7, r0
  00010	e59f310c	 ldr         r3, [pc, #0x10C]
  00014	e5933000	 ldr         r3, [r3]
  00018	e58d3228	 str         r3, [sp, #0x228]

; 43   : 	TCHAR szFileNameTmp[MAX_PATH] ;
; 44   : 	SYSTEMTIME systemtime ;
; 45   : 
; 46   : 	g_nRefCount ++ ;

  0001c	e59f60fc	 ldr         r6, [pc, #0xFC]
  00020	e5963000	 ldr         r3, [r6]

; 47   : 
; 48   : 	if ( g_pVirtureBuffer )

  00024	e5962014	 ldr         r2, [r6, #0x14]
  00028	e2833001	 add         r3, r3, #1
  0002c	e5863000	 str         r3, [r6]
  00030	e3520000	 cmp         r2, #0
  00034	0a000002	 beq         |$L37350|

; 49   : 	{
; 50   : 		NKDbgPrintfW(TEXT("Buffer has Created\r\n")) ;

  00038	e59f00dc	 ldr         r0, [pc, #0xDC]
  0003c	eb000000	 bl          NKDbgPrintfW

; 51   : 		return ;

  00040	ea00002b	 b           |$L37347|
  00044		 |$L37350|

; 52   : 	}
; 53   : 	else
; 54   : 	{
; 55   : 		NKDbgPrintfW(TEXT("Buffer will be Created\r\n")) ;

  00044	e59f00cc	 ldr         r0, [pc, #0xCC]
  00048	eb000000	 bl          NKDbgPrintfW

; 56   : 	}
; 57   : 
; 58   : 	if (szFileName == NULL)

  0004c	e3540000	 cmp         r4, #0
  00050	1a000012	 bne         |$L37355|

; 59   : 	{
; 60   : 		GetLocalTime( &systemtime ) ;

  00054	e28d0010	 add         r0, sp, #0x10
  00058	eb000000	 bl          GetLocalTime

; 61   : 
; 62   : 		wsprintf(szFileNameTmp, TEXT("\\DBGMSG\\%04d_%02d_%02d_%02d_%02d_%02d.txt"),
; 63   : 			systemtime.wYear, systemtime.wMonth, systemtime.wDay,
; 64   : 			systemtime.wHour, systemtime.wMinute, systemtime.wSecond) ;

  0005c	e1dd01bc	 ldrh        r0, [sp, #0x1C]
  00060	e1dde1ba	 ldrh        lr, [sp, #0x1A]
  00064	e1dd41b8	 ldrh        r4, [sp, #0x18]
  00068	e1dd51b6	 ldrh        r5, [sp, #0x16]
  0006c	e1dd31b2	 ldrh        r3, [sp, #0x12]
  00070	e1dd21b0	 ldrh        r2, [sp, #0x10]
  00074	e59f1098	 ldr         r1, [pc, #0x98]
  00078	e58d000c	 str         r0, [sp, #0xC]
  0007c	e28d0020	 add         r0, sp, #0x20
  00080	e58de008	 str         lr, [sp, #8]
  00084	e58d4004	 str         r4, [sp, #4]
  00088	e58d5000	 str         r5, [sp]
  0008c	eb000000	 bl          wsprintfW

; 65   : 
; 66   : 		szFileName = szFileNameTmp ;
; 67   : 
; 68   : 		CreateDirectory(TEXT("\\DBGMSG"), NULL) ;

  00090	e59f0078	 ldr         r0, [pc, #0x78]
  00094	e3a01000	 mov         r1, #0
  00098	e28d4020	 add         r4, sp, #0x20
  0009c	eb000000	 bl          CreateDirectoryW
  000a0		 |$L37355|

; 69   : 	}
; 70   : 
; 71   : 	DeleteFile(szFileName) ;

  000a0	e1a00004	 mov         r0, r4
  000a4	eb000000	 bl          DeleteFileW

; 72   : 
; 73   : 	_tcscpy(g_szMsgFileName, szFileName) ;	

  000a8	e59f005c	 ldr         r0, [pc, #0x5C]
  000ac	e1a01004	 mov         r1, r4
  000b0	eb000000	 bl          wcscpy

; 74   : 	
; 75   : 	g_pVirtureBuffer = (void *)AllocPhysMem(dwLength, PAGE_READWRITE, 0, 0, &g_dwPhysBuffer) ;

  000b4	e2863010	 add         r3, r6, #0x10
  000b8	e58d3000	 str         r3, [sp]
  000bc	e3a03000	 mov         r3, #0
  000c0	e3a02000	 mov         r2, #0
  000c4	e3a01004	 mov         r1, #4
  000c8	e1a00007	 mov         r0, r7
  000cc	eb000000	 bl          AllocPhysMem
  000d0	e1a03000	 mov         r3, r0

; 76   : 	g_dwCurrentLength = 0 ;
; 77   : 	g_dwTotalLength = dwLength ;
; 78   : 	g_nMsgNumber = 0 ;
; 79   : 
; 80   : 	InitializeCriticalSection(&g_WriteBufferCS) ;

  000d4	e59f002c	 ldr         r0, [pc, #0x2C]
  000d8	e3a02000	 mov         r2, #0
  000dc	e3a01000	 mov         r1, #0
  000e0	e5863014	 str         r3, [r6, #0x14]
  000e4	e586200c	 str         r2, [r6, #0xC]
  000e8	e5867008	 str         r7, [r6, #8]
  000ec	e5861004	 str         r1, [r6, #4]
  000f0	eb000000	 bl          InitializeCriticalSection
  000f4		 |$L37347|
  000f4	e59d0228	 ldr         r0, [sp, #0x228]
  000f8	eb000000	 bl          __security_check_cookie

; 81   : }

  000fc	e28ddf8b	 add         sp, sp, #0x8B, 30
  00100	e8bd40f0	 ldmia       sp!, {r4 - r7, lr}
  00104	e12fff1e	 bx          lr
  00108		 |$L37511|
  00108	00000000	 DCD         |g_WriteBufferCS|
  0010c	00000000	 DCD         |g_szMsgFileName|
  00110	00000000	 DCD         |??_C@_1BA@LKFFCPLL@?$AA?2?$AAD?$AAB?$AAG?$AAM?$AAS?$AAG?$AA?$AA@|
  00114	00000000	 DCD         |??_C@_1FE@ILBDNCJA@?$AA?2?$AAD?$AAB?$AAG?$AAM?$AAS?$AAG?$AA?2?$AA?$CF?$AA0?$AA4?$AAd?$AA_?$AA?$CF?$AA0?$AA2?$AAd?$AA_?$AA?$CF?$AA0@|
  00118	00000000	 DCD         |??_C@_1DC@CIIOOELO@?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?5?$AAw?$AAi?$AAl?$AAl?$AA?5?$AAb?$AAe?$AA?5?$AAC?$AAr?$AAe?$AAa?$AAt@|
  0011c	00000000	 DCD         |??_C@_1CK@JPPGDOHG@?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AA?5?$AAh?$AAa?$AAs?$AA?5?$AAC?$AAr?$AAe?$AAa?$AAt?$AAe?$AAd?$AA?$AN?$AA?6@|
  00120	00000000	 DCD         |g_nRefCount|
  00124	00000000	 DCD         |__security_cookie|
  00128		 |$M37507|

			 ENDP  ; |AllocMsgOutBuffer|

	EXPORT	|EnableAddTime|

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

  00000			 AREA	 |.pdata$$EnableAddTime|, PDATA, SELECTION=5, ASSOC=|.text| { |EnableAddTime| } ; comdat associative
|$T37518| DCD	|$L37517|
	DCD	0x40000400
; Function compile flags: /Ogsy

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

  00000		 |EnableAddTime| PROC

; 107  : {

  00000		 |$L37517|
  00000		 |$M37515|

; 108  : 	g_bEnableAddTime = bEnable ;

  00000	e59f3004	 ldr         r3, [pc, #4]
  00004	e5830000	 str         r0, [r3]

; 109  : }

  00008	e12fff1e	 bx          lr
  0000c		 |$L37520|
  0000c	00000000	 DCD         |g_bEnableAddTime|
  00010		 |$M37516|

			 ENDP  ; |EnableAddTime|

	EXPORT	|ByteToHex|

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

  00000			 AREA	 |.pdata$$ByteToHex|, PDATA, SELECTION=5, ASSOC=|.text| { |ByteToHex| } ; comdat associative
|$T37534| DCD	|$L37533|
	DCD	0x40000d00
; Function compile flags: /Ogsy

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

  00000		 |ByteToHex| PROC

; 112  : {

  00000		 |$L37533|
  00000		 |$M37531|

; 113  : 	BYTE bHi4Bit = (b & 0xF0) >> 4 ;

  00000	e1a03220	 mov         r3, r0, lsr #4
  00004	e20320ff	 and         r2, r3, #0xFF

; 114  : 	BYTE bLo4Bit = (b & 0x0F) ;
; 115  : 
; 116  : 	cHex[0] = (bHi4Bit > 9) ? ((bHi4Bit-10)+'a') : (bHi4Bit+'0') ;

  00008	e3520009	 cmp         r2, #9
  0000c	82822057	 addhi       r2, r2, #0x57
  00010	e200300f	 and         r3, r0, #0xF
  00014	92822030	 addls       r2, r2, #0x30

; 117  : 	cHex[1] = (bLo4Bit > 9) ? ((bLo4Bit-10)+'a') : (bLo4Bit+'0') ;

  00018	e3530009	 cmp         r3, #9
  0001c	82833057	 addhi       r3, r3, #0x57
  00020	85c13001	 strhib      r3, [r1, #1]
  00024	e5c12000	 strb        r2, [r1]
  00028	92833030	 addls       r3, r3, #0x30
  0002c	95c13001	 strlsb      r3, [r1, #1]

; 118  : }

  00030	e12fff1e	 bx          lr
  00034		 |$M37532|

			 ENDP  ; |ByteToHex|

	EXPORT	|WriteDbgMsgBufferToFile|
	EXPORT	|??_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 ] ; `string'
	EXPORT	|??_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@| [ DATA ] ; `string'
	IMPORT	|WriteFile|
	IMPORT	|SetFilePointer|
	IMPORT	|CreateStaticMapping|
	IMPORT	|CloseHandle|
	IMPORT	|CreateFileW|
; File f:\wm602\public\common\sdk\inc\kfuncs.h

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

  00000			 AREA	 |.pdata$$WriteDbgMsgBufferToFile|, PDATA, SELECTION=5, ASSOC=|.text| { |WriteDbgMsgBufferToFile| } ; comdat associative
|$T37553| DCD	|$L37552|
	DCD	0x40004002

  00000			 AREA	 |.rdata| { |??_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@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_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@| DCB "W"
	DCB	0x0, "r", 0x0, "i", 0x0, "t", 0x0, "e", 0x0, " ", 0x0, "F"
	DCB	0x0, "i", 0x0, "l", 0x0, "e", 0x0, " ", 0x0, "F", 0x0, "a"
	DCB	0x0, "i", 0x0, "l", 0x0, "e", 0x0, "d", 0x0, ",", 0x0, " "

⌨️ 快捷键说明

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