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

📄 helper.cod

📁 windows CE 的BSP开发包.包含众多的驱动程序和OAL层的开发代码
💻 COD
📖 第 1 页 / 共 2 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091 

	TTL	D:\WINCE500\PLATFORM\smdk2440\DRIVERS\atapi\.\helper.cpp
	CODE32

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

	EXPORT	|?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z| ; AtaGetRegistryValue
	IMPORT	|RegQueryValueExW|
; File d:\wince500\platform\smdk2440\drivers\atapi\helper.cpp

  00000			 AREA	 |.text| { |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z| } ; comdat associative
|$T32050| DCD	|$L32049|
	DCD	0x40001502
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z| PROC ; AtaGetRegistryValue

; 14   : {

  00000		 |$L32049|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004	e24dd010	 sub         sp, sp, #0x10
  00008		 |$M32047|
  00008	e1a04002	 mov         r4, r2

; 15   :     
; 16   :     DWORD               dwValType, dwValLen;
; 17   :     LONG                lStatus;
; 18   :             
; 19   :     dwValLen = sizeof(DWORD);

  0000c	e3a02004	 mov         r2, #4

; 20   :         
; 21   :     lStatus = RegQueryValueEx( hKey, szValueName, NULL, &dwValType, (PBYTE)pdwValue, &dwValLen);

  00010	e28d3008	 add         r3, sp, #8
  00014	e58d2008	 str         r2, [sp, #8]
  00018	e58d3004	 str         r3, [sp, #4]
  0001c	e28d300c	 add         r3, sp, #0xC
  00020	e3a02000	 mov         r2, #0
  00024	e58d4000	 str         r4, [sp]
  00028	eb000000	 bl          RegQueryValueExW
  0002c	e3500000	 cmp         r0, #0

; 22   :         
; 23   :     if ((lStatus != ERROR_SUCCESS) || (dwValType != REG_DWORD)) {           

  00030	059d300c	 ldreq       r3, [sp, #0xC]
  00034	03530004	 cmpeq       r3, #4

; 24   :         DEBUGMSG( ZONE_HELPER , (TEXT("ATAConfig: RegQueryValueEx(%s) failed -returned %d  Error=%08X\r\n"), szValueName, lStatus, GetLastError()));
; 25   :         *pdwValue = -1;

  00038	13e03000	 mvnne       r3, #0

; 26   :         return FALSE;
; 27   :     } 
; 28   :     DEBUGMSG( ZONE_HELPER, (TEXT("ATAPI: AtaGetRegistryValue(%s) Value(%x) hKey: %x\r\n"), szValueName,*pdwValue,hKey));
; 29   :     return TRUE;

  0003c	03a00001	 moveq       r0, #1
  00040	15843000	 strne       r3, [r4]
  00044	13a00000	 movne       r0, #0

; 30   : }

  00048	e28dd010	 add         sp, sp, #0x10
  0004c	e8bd4010	 ldmia       sp!, {r4, lr}
  00050	e12fff1e	 bx          lr
  00054		 |$M32048|

			 ENDP  ; |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|, AtaGetRegistryValue

	EXPORT	|?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z| ; AtaGetRegistryString
	IMPORT	|LocalAlloc|
	IMPORT	|LocalFree|

  00000			 AREA	 |.text| { |?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z| } ; comdat associative
|$T32066| DCD	|$L32065|
	DCD	0x40003202
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z| PROC ; AtaGetRegistryString

; 33   : {

  00000		 |$L32065|
  00000	e92d41f0	 stmdb       sp!, {r4 - r8, lr}
  00004	e24dd010	 sub         sp, sp, #0x10
  00008		 |$M32063|
  00008	e1a05003	 mov         r5, r3
  0000c	e1a04002	 mov         r4, r2
  00010	e1a06001	 mov         r6, r1
  00014	e1a07000	 mov         r7, r0

; 34   :     DWORD             dwValType, dwValLen;
; 35   :     LONG                lStatus;
; 36   :     
; 37   :     dwValLen = 0;

  00018	e3a03000	 mov         r3, #0

; 38   :     lStatus = RegQueryValueEx( hKey, szValueName, NULL, &dwValType, NULL, &dwValLen);

  0001c	e58d3008	 str         r3, [sp, #8]
  00020	e28de008	 add         lr, sp, #8
  00024	e3a08000	 mov         r8, #0
  00028	e28d300c	 add         r3, sp, #0xC
  0002c	e3a02000	 mov         r2, #0
  00030	e58de004	 str         lr, [sp, #4]
  00034	e58d8000	 str         r8, [sp]
  00038	eb000000	 bl          RegQueryValueExW

; 39   : 
; 40   :     if (dwSize && (dwValLen > dwSize)) {

  0003c	e59d1008	 ldr         r1, [sp, #8]
  00040	e3550000	 cmp         r5, #0
  00044	0a000001	 beq         |$L31955|
  00048	e1510005	 cmp         r1, r5

; 41   :         DEBUGMSG( ZONE_HELPER, (TEXT("ATAConfig: AtaGetRegistryString size specified is too small!!!\r\n")));
; 42   :         return FALSE;

  0004c	8a000017	 bhi         |$L32062|
  00050		 |$L31955|

; 43   :     }   
; 44   :         
; 45   :     if ((lStatus != ERROR_SUCCESS) || (dwValType != REG_SZ)) {          

  00050	e3500000	 cmp         r0, #0
  00054	1a000014	 bne         |$L31958|
  00058	e59d300c	 ldr         r3, [sp, #0xC]
  0005c	e3530001	 cmp         r3, #1
  00060	1a000011	 bne         |$L31958|

; 49   :     }
; 50   :     
; 51   :     if (!dwSize) 

  00064	e3550000	 cmp         r5, #0
  00068	1a000002	 bne         |$L31960|

; 52   :         *pszValue = (PTSTR)LocalAlloc( LPTR, dwValLen);

  0006c	e3a00040	 mov         r0, #0x40
  00070	eb000000	 bl          LocalAlloc
  00074	e5840000	 str         r0, [r4]
  00078		 |$L31960|

; 53   :     
; 54   :     lStatus = RegQueryValueEx( hKey, szValueName, NULL, &dwValType, (PBYTE)*pszValue, &dwValLen);

  00078	e5942000	 ldr         r2, [r4]
  0007c	e28de008	 add         lr, sp, #8
  00080	e28d300c	 add         r3, sp, #0xC
  00084	e58d2000	 str         r2, [sp]
  00088	e3a02000	 mov         r2, #0
  0008c	e1a01006	 mov         r1, r6
  00090	e1a00007	 mov         r0, r7
  00094	e58de004	 str         lr, [sp, #4]
  00098	eb000000	 bl          RegQueryValueExW
  0009c	e3500000	 cmp         r0, #0

; 55   : 
; 56   :     if (lStatus != ERROR_SUCCESS) {

  000a0	0a000006	 beq         |$L31963|

; 57   :         DEBUGMSG( ZONE_HELPER , (TEXT("ATAConfig: RegQueryValueEx(%s) failed -returned %d  Error=%08X\r\n"), szValueName, lStatus, GetLastError()));
; 58   :         LocalFree( *pszValue);

  000a4	e5940000	 ldr         r0, [r4]
  000a8	eb000000	 bl          LocalFree
  000ac		 |$L31958|

; 46   :         DEBUGMSG( ZONE_HELPER , (TEXT("ATAConfig: RegQueryValueEx(%s) failed -returned %d  Error=%08X\r\n"), szValueName, lStatus, GetLastError()));
; 47   :         *pszValue = NULL;

  000ac	e5848000	 str         r8, [r4]
  000b0		 |$L32062|

; 48   :         return FALSE;

  000b0	e3a00000	 mov         r0, #0
  000b4		 |$L31951|

; 64   : }

  000b4	e28dd010	 add         sp, sp, #0x10
  000b8	e8bd41f0	 ldmia       sp!, {r4 - r8, lr}
  000bc	e12fff1e	 bx          lr
  000c0		 |$L31963|

; 59   :         *pszValue = NULL;
; 60   :         return FALSE;
; 61   :     }    
; 62   :     DEBUGMSG( ZONE_HELPER, (TEXT("ATAPI: AtaGetRegistryString(%s) Value(%s) hKey: %x\r\n"), szValueName,*pszValue, hKey));
; 63   :     return TRUE;

  000c0	e3a00001	 mov         r0, #1
  000c4	eafffffa	 b           |$L31951|
  000c8		 |$M32064|

			 ENDP  ; |?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z|, AtaGetRegistryString

	EXPORT	|?AtaSetRegistryValue@@YAHPAUHKEY__@@PAGK@Z| ; AtaSetRegistryValue
	IMPORT	|RegSetValueExW|

  00000			 AREA	 |.text| { |?AtaSetRegistryValue@@YAHPAUHKEY__@@PAGK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?AtaSetRegistryValue@@YAHPAUHKEY__@@PAGK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?AtaSetRegistryValue@@YAHPAUHKEY__@@PAGK@Z| } ; comdat associative
|$T32077| DCD	|$L32076|
	DCD	0x40001104
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?AtaSetRegistryValue@@YAHPAUHKEY__@@PAGK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?AtaSetRegistryValue@@YAHPAUHKEY__@@PAGK@Z| PROC ; AtaSetRegistryValue

; 68   : {

  00000		 |$L32076|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d000f	 stmdb       sp!, {r0 - r3}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd008	 sub         sp, sp, #8
  00010		 |$M32074|

; 69   :     
; 70   :     DWORD              dwValLen;
; 71   :     LONG                lStatus;
; 72   :             
; 73   :     dwValLen = sizeof(DWORD);
; 74   :         
; 75   :     lStatus = RegSetValueEx( hKey, szValueName, 0, REG_DWORD, (PBYTE)&dwValue, dwValLen);

  00010	e3a02004	 mov         r2, #4
  00014	e28d3018	 add         r3, sp, #0x18
  00018	e58d2004	 str         r2, [sp, #4]
  0001c	e58d3000	 str         r3, [sp]
  00020	e3a03004	 mov         r3, #4
  00024	e3a02000	 mov         r2, #0
  00028	eb000000	 bl          RegSetValueExW
  0002c	e3500000	 cmp         r0, #0

; 76   :         
; 77   :     if (lStatus != ERROR_SUCCESS) {
; 78   :         DEBUGMSG( ZONE_HELPER , (TEXT("ATAConfig: RegQueryValueEx(%s) failed -returned %d  Error=%08X\r\n"), szValueName, lStatus, GetLastError()));
; 79   :         return FALSE;

  00030	13a00000	 movne       r0, #0

; 80   :     } 
; 81   :     DEBUGMSG( ZONE_HELPER, (TEXT("ATAPI: AtaSetRegistryValue(%s) Value(%x) hKey: %x\r\n"), szValueName, dwValue,hKey));
; 82   :     return TRUE;

  00034	03a00001	 moveq       r0, #1

; 83   : }

  00038	e28dd008	 add         sp, sp, #8
  0003c	e89d6000	 ldmia       sp, {sp, lr}
  00040	e12fff1e	 bx          lr
  00044		 |$M32075|

			 ENDP  ; |?AtaSetRegistryValue@@YAHPAUHKEY__@@PAGK@Z|, AtaSetRegistryValue

	EXPORT	|?AtaSetRegistryString@@YAHPAUHKEY__@@PAG1@Z| ; AtaSetRegistryString
	IMPORT	|wcslen|

  00000			 AREA	 |.text| { |?AtaSetRegistryString@@YAHPAUHKEY__@@PAG1@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?AtaSetRegistryString@@YAHPAUHKEY__@@PAG1@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?AtaSetRegistryString@@YAHPAUHKEY__@@PAG1@Z| } ; comdat associative
|$T32090| DCD	|$L32089|
	DCD	0x40001602
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?AtaSetRegistryString@@YAHPAUHKEY__@@PAG1@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?AtaSetRegistryString@@YAHPAUHKEY__@@PAG1@Z| PROC ; AtaSetRegistryString

; 87   : {

  00000		 |$L32089|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004	e24dd008	 sub         sp, sp, #8
  00008		 |$M32087|
  00008	e1a06002	 mov         r6, r2
  0000c	e1a04001	 mov         r4, r1

⌨️ 快捷键说明

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