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

📄 maxkeydll.cod

📁 max7347的键盘驱动在wince下的键盘模型
💻 COD
📖 第 1 页 / 共 2 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237 

	TTL	D:\WINCE500\PLATFORM\zylonite_mhl\SRC\DRIVERS\KeyPad\MAXKEY\.\maxkeydll.cpp
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|?v_uiPddId@@3IA| [ DATA ]		; v_uiPddId
	EXPORT	|?v_pfnKeybdEvent@@3P6AXIIH@ZA| [ DATA ] ; v_pfnKeybdEvent
	EXPORT	|??_C@_1BI@MOJFBKAP@?$AAP?$AAS?$AA?1?$AA2?$AA?5?$AAS?$AAA?$AA1?$AA1?$AAX?$AA1?$AA?$AA@| [ DATA ] ; `string'

  00000			 AREA	 |.bss|, NOINIT
|?v_uiPddId@@3IA| % 0x4					; v_uiPddId
|?v_pfnKeybdEvent@@3P6AXIIH@ZA| % 0x4			; v_pfnKeybdEvent

  00000			 AREA	 |.data|, DATA
|PS28042Pdd| DCW 0x2
	%	2
	DCD	|??_C@_1BI@MOJFBKAP@?$AAP?$AAS?$AA?1?$AA2?$AA?5?$AAS?$AAA?$AA1?$AA1?$AAX?$AA1?$AA?$AA@|
	DCD	|?PS2_SA11X1_PowerHandler@@YAXIH@Z|
	DCD	|?PS2_SA11X1_ToggleLights@@YAXII@Z|

  00000			 AREA	 |.rdata| { |??_C@_1BI@MOJFBKAP@?$AAP?$AAS?$AA?1?$AA2?$AA?5?$AAS?$AAA?$AA1?$AA1?$AAX?$AA1?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BI@MOJFBKAP@?$AAP?$AAS?$AA?1?$AA2?$AA?5?$AAS?$AAA?$AA1?$AA1?$AAX?$AA1?$AA?$AA@| DCB "P"
	DCB	0x0, "S", 0x0, "/", 0x0, "2", 0x0, " ", 0x0, "S", 0x0, "A"
	DCB	0x0, "1", 0x0, "1", 0x0, "X", 0x0, "1", 0x0, 0x0, 0x0 ; `string'
	EXPORT	|?MaxReadRegDWORD@@YAHPBG0PAK@Z|	; MaxReadRegDWORD
	IMPORT	|RegCloseKey|
	IMPORT	|RegOpenKeyExW|
	IMPORT	|RegQueryValueExW|
; File d:\wince500\platform\zylonite_mhl\src\drivers\keypad\maxkey\maxkeydll.cpp

  00000			 AREA	 |.text| { |?MaxReadRegDWORD@@YAHPBG0PAK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?MaxReadRegDWORD@@YAHPBG0PAK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?MaxReadRegDWORD@@YAHPBG0PAK@Z| } ; comdat associative
|$T29284| DCD	|$L29283|
	DCD	0x40002302
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?MaxReadRegDWORD@@YAHPBG0PAK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?MaxReadRegDWORD@@YAHPBG0PAK@Z| PROC	; MaxReadRegDWORD

; 61   : {

  00000		 |$L29283|
  00000	e92d40f0	 stmdb       sp!, {r4 - r7, lr}
  00004	e24dd014	 sub         sp, sp, #0x14
  00008		 |$M29281|
  00008	e1a06001	 mov         r6, r1
  0000c	e1a01000	 mov         r1, r0
  00010	e1a05002	 mov         r5, r2

; 62   :     HKEY  hKeybd;
; 63   :     DWORD ValType;
; 64   :     DWORD ValLen;
; 65   :     DWORD status;
; 66   :     BOOL  fRet = FALSE;
; 67   : 
; 68   :     //默认值设为:0
; 69   :     *pdwValue = 0;

  00014	e3a02000	 mov         r2, #0

; 70   :      
; 71   :     // Get the device key from the active device registry key
; 72   :     status = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKeyName, 0, 0, &hKeybd);     //成功返回0,否则非0;回送&hKeybd键句柄值

  00018	e28d3008	 add         r3, sp, #8
  0001c	e5852000	 str         r2, [r5]
  00020	e58d3000	 str         r3, [sp]
  00024	e3a03000	 mov         r3, #0
  00028	e3a02000	 mov         r2, #0
  0002c	e3a0010a	 mov         r0, #0xA, 2
  00030	e3a04000	 mov         r4, #0
  00034	eb000000	 bl          RegOpenKeyExW
  00038	e3500000	 cmp         r0, #0

; 73   :     if (status) 

  0003c	1a00000b	 bne         |$leave$29197|

; 74   : 	{
; 75   :         DEBUGMSG(1, (TEXT("MaxReadRegDWORD: RegOpenKeyEx(HLM\\%s) returned %d!!!\r\n"), szKeyName, status));
; 76   :         goto leave;
; 77   :     }
; 78   : 
; 79   :     ValLen = sizeof(DWORD);
; 80   :     status = RegQueryValueEx(hKeybd, szValueName, NULL, &ValType, (PUCHAR)pdwValue, &ValLen);    

  00040	e59d0008	 ldr         r0, [sp, #8]
  00044	e3a07004	 mov         r7, #4
  00048	e28de00c	 add         lr, sp, #0xC
  0004c	e28d3010	 add         r3, sp, #0x10
  00050	e3a02000	 mov         r2, #0
  00054	e1a01006	 mov         r1, r6
  00058	e58d700c	 str         r7, [sp, #0xC]
  0005c	e58de004	 str         lr, [sp, #4]
  00060	e58d5000	 str         r5, [sp]
  00064	eb000000	 bl          RegQueryValueExW
  00068	e3500000	 cmp         r0, #0

; 81   :     if (status != ERROR_SUCCESS) 
; 82   : 	{
; 83   :         DEBUGMSG(1, (TEXT("MaxReadRegDWORD: RegQueryValueEx(%s) returned %d\r\n"), szValueName, status));
; 84   : 		goto leave;
; 85   :     }
; 86   : 
; 87   : 	DEBUGMSG(ZONE_INIT, (_T("MaxReadRegDWORD(): %s -> %s is %d (0x%x)\r\n"), szKeyName, szValueName, *pdwValue, *pdwValue));
; 88   : 
; 89   : 	fRet = TRUE;

  0006c	03a04001	 moveq       r4, #1
  00070		 |$leave$29197|

; 90   : 	
; 91   : leave:
; 92   : 	if (hKeybd) 

  00070	e59d0008	 ldr         r0, [sp, #8]
  00074	e3500000	 cmp         r0, #0

; 93   : 	{
; 94   : 	    RegCloseKey(hKeybd);

  00078	1b000000	 blne        RegCloseKey

; 95   : 	}
; 96   : 	
; 97   : 	return fRet;

  0007c	e1a00004	 mov         r0, r4

; 98   : }

  00080	e28dd014	 add         sp, sp, #0x14
  00084	e8bd40f0	 ldmia       sp!, {r4 - r7, lr}
  00088	e12fff1e	 bx          lr
  0008c		 |$M29282|

			 ENDP  ; |?MaxReadRegDWORD@@YAHPBG0PAK@Z|, MaxReadRegDWORD

	IMPORT	|?MaxKeybdPdd_PowerHandler@@YAXH@Z|	; MaxKeybdPdd_PowerHandler

  00000			 AREA	 |.text| { |?PS2_SA11X1_PowerHandler@@YAXIH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?PS2_SA11X1_PowerHandler@@YAXIH@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?PS2_SA11X1_PowerHandler@@YAXIH@Z| } ; comdat associative
|$T29292| DCD	|$L29291|
	DCD	0x40000501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?PS2_SA11X1_PowerHandler@@YAXIH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?PS2_SA11X1_PowerHandler@@YAXIH@Z| PROC ; PS2_SA11X1_PowerHandler

; 116  : {

  00000		 |$L29291|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M29289|
  00004	e1a00001	 mov         r0, r1

; 117  :     MaxKeybdPdd_PowerHandler(fTurnOff);

  00008	eb000000	 bl          |?MaxKeybdPdd_PowerHandler@@YAXH@Z|

; 118  : 	//RETAILMSG(1, (TEXT("PS2_SA11X1_PowerHandler fTurnOff = %d"),fTurnOff));
; 119  : }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M29290|

			 ENDP  ; |?PS2_SA11X1_PowerHandler@@YAXIH@Z|, PS2_SA11X1_PowerHandler

	IMPORT	|?MaxKeybdPdd_ToggleKeyNotification@@YAXI@Z| ; MaxKeybdPdd_ToggleKeyNotification

  00000			 AREA	 |.bss| { |?ksfCurr@?1??PS2_SA11X1_ToggleLights@@YAXII@Z@4IA| }, NOINIT, SELECTION=2 ; comdat any
|?ksfCurr@?1??PS2_SA11X1_ToggleLights@@YAXII@Z@4IA| % 0x4 ; `PS2_SA11X1_ToggleLights'::`2'::ksfCurr

  00000			 AREA	 |.text| { |?PS2_SA11X1_ToggleLights@@YAXII@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?PS2_SA11X1_ToggleLights@@YAXII@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?PS2_SA11X1_ToggleLights@@YAXII@Z| } ; comdat associative
|$T29301| DCD	|$L29300|
	DCD	0x40000e01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?PS2_SA11X1_ToggleLights@@YAXII@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?PS2_SA11X1_ToggleLights@@YAXII@Z| PROC ; PS2_SA11X1_ToggleLights

; 141  : {

  00000		 |$L29300|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M29298|

; 142  :     static KEY_STATE_FLAGS ksfCurr;
; 143  :     static const KEY_STATE_FLAGS ksfLightMask = KeyShiftCapitalFlag | KeyShiftNumLockFlag | KeyShiftScrollLockFlag;
; 144  : 
; 145  :     SETFNAME(_T("PS2_ToggleLights"));
; 146  : 
; 147  :     KEY_STATE_FLAGS ksfNewState = (ksfLightMask & KeyStateFlags);
; 148  : 
; 149  :     if (ksfNewState != ksfCurr) 

  00004	e59f5028	 ldr         r5, [pc, #0x28]
  00008	e3a03302	 mov         r3, #2, 6
  0000c	e3833b06	 orr         r3, r3, #6, 22
  00010	e5952000	 ldr         r2, [r5]
  00014	e0014003	 and         r4, r1, r3
  00018	e1540002	 cmp         r4, r2
  0001c	0a000002	 beq         |$L29219|

; 150  :     {
; 151  :         DEBUGMSG(ZONE_PDD, (_T("%s: PDD %u: Changing light state\r\n"), pszFname, uiPddId));
; 152  :         MaxKeybdPdd_ToggleKeyNotification(ksfNewState);

  00020	e1a00004	 mov         r0, r4
  00024	eb000000	 bl          |?MaxKeybdPdd_ToggleKeyNotification@@YAXI@Z|

; 153  :         ksfCurr = ksfNewState;

  00028	e5854000	 str         r4, [r5]
  0002c		 |$L29219|

; 154  :     }
; 155  : 
; 156  :     return;
; 157  : }

  0002c	e8bd4030	 ldmia       sp!, {r4, r5, lr}

⌨️ 快捷键说明

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