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

📄 atapipm.cod

📁 windows CE 的BSP开发包.包含众多的驱动程序和OAL层的开发代码
💻 COD
📖 第 1 页 / 共 5 页
字号:

  000dc	e3a03000	 mov         r3, #0
  000e0	e3a02002	 mov         r2, #2
  000e4	e5c4100a	 strb        r1, [r4, #0xA]
  000e8	e28d1000	 add         r1, sp, #0
  000ec	e28d0010	 add         r0, sp, #0x10
  000f0	eb000000	 bl          |?HexStringToDword@@YAHAAPBGAAKHG@Z|
  000f4	e3500000	 cmp         r0, #0

; 75   :         return FALSE;

  000f8	0a000023	 beq         |$L32429|

; 76   :     
; 77   :     pguid->Data4[3] = (BYTE)dw;

  000fc	e59d1000	 ldr         r1, [sp]

; 78   :     
; 79   :     if (!HexStringToDword(lpsz, dw, sizeof(BYTE)*2, 0))

  00100	e3a03000	 mov         r3, #0
  00104	e3a02002	 mov         r2, #2
  00108	e5c4100b	 strb        r1, [r4, #0xB]
  0010c	e28d1000	 add         r1, sp, #0
  00110	e28d0010	 add         r0, sp, #0x10
  00114	eb000000	 bl          |?HexStringToDword@@YAHAAPBGAAKHG@Z|
  00118	e3500000	 cmp         r0, #0

; 80   :         return FALSE;

  0011c	0a00001a	 beq         |$L32429|

; 81   :     
; 82   :     pguid->Data4[4] = (BYTE)dw;

  00120	e59d1000	 ldr         r1, [sp]

; 83   :     
; 84   :     if (!HexStringToDword(lpsz, dw, sizeof(BYTE)*2, 0))

  00124	e3a03000	 mov         r3, #0
  00128	e3a02002	 mov         r2, #2
  0012c	e5c4100c	 strb        r1, [r4, #0xC]
  00130	e28d1000	 add         r1, sp, #0
  00134	e28d0010	 add         r0, sp, #0x10
  00138	eb000000	 bl          |?HexStringToDword@@YAHAAPBGAAKHG@Z|
  0013c	e3500000	 cmp         r0, #0

; 85   :         return FALSE;

  00140	0a000011	 beq         |$L32429|

; 86   :     
; 87   :     pguid->Data4[5] = (BYTE)dw;

  00144	e59d1000	 ldr         r1, [sp]

; 88   :     
; 89   :     if (!HexStringToDword(lpsz, dw, sizeof(BYTE)*2, 0))

  00148	e3a03000	 mov         r3, #0
  0014c	e3a02002	 mov         r2, #2
  00150	e5c4100d	 strb        r1, [r4, #0xD]
  00154	e28d1000	 add         r1, sp, #0
  00158	e28d0010	 add         r0, sp, #0x10
  0015c	eb000000	 bl          |?HexStringToDword@@YAHAAPBGAAKHG@Z|
  00160	e3500000	 cmp         r0, #0

; 90   :         return FALSE;

  00164	0a000008	 beq         |$L32429|

; 91   :     
; 92   :     pguid->Data4[6] = (BYTE)dw;

  00168	e59d1000	 ldr         r1, [sp]

; 93   :     if (!HexStringToDword(lpsz, dw, sizeof(BYTE)*2, 0))

  0016c	e3a03000	 mov         r3, #0
  00170	e3a02002	 mov         r2, #2
  00174	e5c4100e	 strb        r1, [r4, #0xE]
  00178	e28d1000	 add         r1, sp, #0
  0017c	e28d0010	 add         r0, sp, #0x10
  00180	eb000000	 bl          |?HexStringToDword@@YAHAAPBGAAKHG@Z|
  00184	e3500000	 cmp         r0, #0
  00188	1a000001	 bne         |$L31985|
  0018c		 |$L32429|

; 94   :         return FALSE;

  0018c	e3a00000	 mov         r0, #0
  00190	ea000002	 b           |$L31953|
  00194		 |$L31985|

; 95   :     
; 96   :     pguid->Data4[7] = (BYTE)dw;

  00194	e59d3000	 ldr         r3, [sp]

; 97   :     
; 98   :     return TRUE;

  00198	e3a00001	 mov         r0, #1
  0019c	e5c4300f	 strb        r3, [r4, #0xF]
  001a0		 |$L31953|

; 99   : }

  001a0	e28dd004	 add         sp, sp, #4
  001a4	e89d6010	 ldmia       sp, {r4, sp, lr}
  001a8	e12fff1e	 bx          lr
  001ac		 |$M32431|

			 ENDP  ; |?wUUIDFromString@@YAHPBGPAU_GUID@@@Z|, wUUIDFromString


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

  00000			 AREA	 |.pdata$$?GUIDFromString@@YAHPBGPAU_GUID@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?GUIDFromString@@YAHPBGPAU_GUID@@@Z| } ; comdat associative
|$T32445| DCD	|$L32444|
	DCD	0x40001201
; Function compile flags: /Ogsy

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

  00000		 |?GUIDFromString@@YAHPBGPAU_GUID@@@Z| PROC ; GUIDFromString

; 103  : {

  00000		 |$L32444|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M32442|
  00004	e1a04000	 mov         r4, r0

; 104  :     if (*lpsz++ != '{' )

  00008	e0d430b2	 ldrh        r3, [r4], #2
  0000c	e353007b	 cmp         r3, #0x7B

; 105  :         return FALSE;

  00010	1a000006	 bne         |$L32441|

; 106  :     
; 107  :     if(wUUIDFromString(lpsz, pguid) != TRUE)

  00014	e1a00004	 mov         r0, r4
  00018	eb000000	 bl          |?wUUIDFromString@@YAHPBGPAU_GUID@@@Z|
  0001c	e3500001	 cmp         r0, #1

; 108  :         return FALSE;

  00020	1a000002	 bne         |$L32441|

; 109  :     
; 110  :     lpsz +=36;
; 111  :     
; 112  :     if (*lpsz++ != '}' )

  00024	e1d434b8	 ldrh        r3, [r4, #0x48]
  00028	e353007d	 cmp         r3, #0x7D
  0002c	0a000002	 beq         |$L31993|
  00030		 |$L32441|

; 113  :         return FALSE;

  00030	e3a00000	 mov         r0, #0

; 116  : }

  00034	e8bd4010	 ldmia       sp!, {r4, lr}
  00038	e12fff1e	 bx          lr
  0003c		 |$L31993|

; 114  :     
; 115  :     return TRUE;

  0003c	e3a00001	 mov         r0, #1

; 116  : }

  00040	e8bd4010	 ldmia       sp!, {r4, lr}
  00044	e12fff1e	 bx          lr
  00048		 |$M32443|

			 ENDP  ; |?GUIDFromString@@YAHPBGPAU_GUID@@@Z|, GUIDFromString

	EXPORT	|??0CDiskPower@@QAA@XZ|			; CDiskPower::CDiskPower
	EXPORT	|?Init@CDiskPower@@UAAHPAVCDisk@@@Z|	; CDiskPower::Init
	EXPORT	|?SignalActivity@CDiskPower@@UAAXXZ|	; CDiskPower::SignalActivity
	EXPORT	|?RequestDevice@CDiskPower@@UAAHXZ|	; CDiskPower::RequestDevice
	EXPORT	|?ReleaseDevice@CDiskPower@@UAAXXZ|	; CDiskPower::ReleaseDevice
	EXPORT	|?DiskPowerIoctl@CDiskPower@@UAAKPAU_IOREQ@@@Z| ; CDiskPower::DiskPowerIoctl
	EXPORT	|?SetDiskPower@CDiskPower@@MAAKW4_CEDEVICE_POWER_STATE@@@Z| ; CDiskPower::SetDiskPower
	EXPORT	|?GetDiskPower@CDiskPower@@MAA?AW4_CEDEVICE_POWER_STATE@@XZ| ; CDiskPower::GetDiskPower
	EXPORT	|?GetDiskCapabilities@CDiskPower@@MAAKPAU_POWER_CAPABILITIES@@@Z| ; CDiskPower::GetDiskCapabilities
	EXPORT	|?TakeCS@CDiskPower@@MAAXXZ|		; CDiskPower::TakeCS
	EXPORT	|?ReleaseCS@CDiskPower@@MAAXXZ|		; CDiskPower::ReleaseCS
	EXPORT	|?DiskPowerThread@CDiskPower@@EAAKXZ|	; CDiskPower::DiskPowerThread
	EXPORT	|??_7CDiskPower@@6B@| [ DATA ]		; CDiskPower::`vftable'
	EXPORT	|??_GCDiskPower@@UAAPAXI@Z|		; CDiskPower::`scalar deleting destructor'
	IMPORT	|QueryPerformanceCounter|
	IMPORT	|InitializeCriticalSection|
	IMPORT	|??_ECDiskPower@@UAAPAXI@Z|, WEAK |??_GCDiskPower@@UAAPAXI@Z| ; CDiskPower::`vector deleting destructor', CDiskPower::`scalar deleting destructor'
	IMPORT	|memset|
	IMPORT	|GetTickCount|

  00000			 AREA	 |.text| { |??0CDiskPower@@QAA@XZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$??0CDiskPower@@QAA@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |??0CDiskPower@@QAA@XZ| } ; comdat associative
|$T32456| DCD	|$L32455|
	DCD	0x40002901

  00000			 AREA	 |.rdata| { |??_7CDiskPower@@6B@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_7CDiskPower@@6B@| DCD |??_ECDiskPower@@UAAPAXI@Z|	; CDiskPower::`vftable'
	DCD	|?Init@CDiskPower@@UAAHPAVCDisk@@@Z|
	DCD	|?SignalActivity@CDiskPower@@UAAXXZ|
	DCD	|?RequestDevice@CDiskPower@@UAAHXZ|
	DCD	|?ReleaseDevice@CDiskPower@@UAAXXZ|
	DCD	|?DiskPowerIoctl@CDiskPower@@UAAKPAU_IOREQ@@@Z|
	DCD	|?SetDiskPower@CDiskPower@@MAAKW4_CEDEVICE_POWER_STATE@@@Z|
	DCD	|?GetDiskPower@CDiskPower@@MAA?AW4_CEDEVICE_POWER_STATE@@XZ|
	DCD	|?GetDiskCapabilities@CDiskPower@@MAAKPAU_POWER_CAPABILITIES@@@Z|
	DCD	|?TakeCS@CDiskPower@@MAAXXZ|
	DCD	|?ReleaseCS@CDiskPower@@MAAXXZ|
	DCD	|?DiskPowerThread@CDiskPower@@EAAKXZ|
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |??0CDiskPower@@QAA@XZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |??0CDiskPower@@QAA@XZ| PROC		; CDiskPower::CDiskPower

; 133  : {

  00000		 |$L32455|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004		 |$M32453|
  00004	e1a04000	 mov         r4, r0
  00008	e59f3090	 ldr         r3, [pc, #0x90]
  0000c	e3a0e002	 mov         lr, #2
  00010	e3a05ffa	 mov         r5, #0xFA, 30
  00014	e5843000	 str         r3, [r4]
  00018	e3a03000	 mov         r3, #0
  0001c	e3a060fa	 mov         r6, #0xFA

; 134  :     memset(&m_dxInfo, 0, sizeof(m_dxInfo));

  00020	e3a02050	 mov         r2, #0x50
  00024	e3a01000	 mov         r1, #0
  00028	e2840060	 add         r0, r4, #0x60
  0002c	e5843008	 str         r3, [r4, #8]
  00030	e5843010	 str         r3, [r4, #0x10]
  00034	e5843014	 str         r3, [r4, #0x14]
  00038	e584301c	 str         r3, [r4, #0x1C]
  0003c	e5843020	 str         r3, [r4, #0x20]
  00040	e5843028	 str         r3, [r4, #0x28]
  00044	e5843044	 str         r3, [r4, #0x44]
  00048	e5843048	 str         r3, [r4, #0x48]
  0004c	e584304c	 str         r3, [r4, #0x4C]
  00050	e58430b0	 str         r3, [r4, #0xB0]
  00054	e584e00c	 str         lr, [r4, #0xC]
  00058	e5845018	 str         r5, [r4, #0x18]
  0005c	e5846040	 str         r6, [r4, #0x40]
  00060	eb000000	 bl          memset

; 135  :     m_dwStartTickCount = GetTickCount();

  00064	eb000000	 bl          GetTickCount
  00068	e1a03000	 mov         r3, r0

; 136  :     QueryPerformanceCounter(&m_startQPC);

  0006c	e2840058	 add         r0, r4, #0x58
  00070	e5843050	 str         r3, [r4, #0x50]
  00074	eb000000	 bl          QueryPerformanceCounter

; 137  :     m_dxInfo[m_curDx].dwCount++;

  00078	e5943008	 ldr         r3, [r4, #8]

; 138  :     InitializeCriticalSection(&m_csPower);

  0007c	e284002c	 add         r0, r4, #0x2C
  00080	e0842203	 add         r2, r4, r3, lsl #4
  00084	e5923060	 ldr         r3, [r2, #0x60]
  00088	e2833001	 add         r3, r3, #1
  0008c	e5823060	 str         r3, [r2, #0x60]
  00090	eb000000	 bl          InitializeCriticalSection

; 139  : }

  00094	e1a00004	 mov         r0, r4
  00098	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  0009c	e12fff1e	 bx          lr
  000a0		 |$L32458|
  000a0	00000000	 DCD         |??_7CDiskPower@@6B@|
  000a4		 |$M32454|

			 ENDP  ; |??0CDiskPower@@QAA@XZ|, CDiskPower::CDiskPower

	IMPORT	|EnterCriticalSection|

  00000			 AREA	 |.text| { |?TakeCS@CDiskPower@@MAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?TakeCS@CDiskPower@@MAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?TakeCS@CDiskPower@@MAAXXZ| } ; comdat associative
|$T32465| DCD	|$L32464|
	DCD	0x40000501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?TakeCS@CDiskPower@@MAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?TakeCS@CDiskPower@@MAAXXZ| PROC	; CDiskPower::TakeCS

; 165  : { 

  00000		 |$L32464|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M32462|

; 166  :     EnterCriticalSection(&m_csPower); 

  00004	e280002c	 add         r0, r0, #0x2C
  00008	eb000000	 bl          EnterCriticalSection

; 167  : }

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

			 ENDP  ; |?TakeCS@CDiskPower@@MAAXXZ|, CDiskPower::TakeCS

	IMPORT	|LeaveCriticalSection|

  00000			 AREA	 |.text| { |?ReleaseCS@CDiskPower@@MAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?ReleaseCS@CDiskPower@@MAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?ReleaseCS@CDiskPower@@MAAXXZ| } ; comdat associative
|$T32473| DCD	|$L32472|
	DCD	0x40000501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?ReleaseCS@CDiskPower@@MAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?ReleaseCS@CDiskPower@@MAAXXZ| PROC	; CDiskPower::ReleaseCS

; 170  : { 

  00000		 |$L32472|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M32470|

; 171  :     LeaveCriticalSection(&m_csPower); 

  00004	e280002c	 add         r0, r0, #0x2C
  00008	eb000000	 bl          LeaveCriticalSection

; 172  : }

  0000c	e49de004	 ldr         lr, [sp], #4

⌨️ 快捷键说明

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