📄 atapipm.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091
TTL D:\WINCE500\PLATFORM\smdk2440\DRIVERS\atapi\.\atapipm.cpp
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
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 |memset|
IMPORT |InitializeCriticalSection|
IMPORT |??_ECDiskPower@@UAAPAXI@Z|, WEAK |??_GCDiskPower@@UAAPAXI@Z| ; CDiskPower::`vector deleting destructor', CDiskPower::`scalar deleting destructor'
IMPORT |GetTickCount|
00000 AREA |.pdata|, PDATA
|$T32432| DCD |$L32431|
DCD 0x40006604
; File d:\wince500\platform\smdk2440\drivers\atapi\atapipm.cpp
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: /Odt
00000 AREA |.text|, CODE, ARM
00000 |??0CDiskPower@@QAA@XZ| PROC ; CDiskPower::CDiskPower
; 133 : {
00000 |$L32431|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd008 sub sp, sp, #8
00010 |$M32429|
00010 e59f217c ldr r2, [pc, #0x17C]
00014 e59d3010 ldr r3, [sp, #0x10]
00018 e5832000 str r2, [r3]
0001c e59d3010 ldr r3, [sp, #0x10]
00020 e2832008 add r2, r3, #8
00024 e3a03000 mov r3, #0
00028 e5823000 str r3, [r2]
0002c e59d3010 ldr r3, [sp, #0x10]
00030 e283200c add r2, r3, #0xC
00034 e3a03002 mov r3, #2
00038 e5823000 str r3, [r2]
0003c e59d3010 ldr r3, [sp, #0x10]
00040 e2832010 add r2, r3, #0x10
00044 e3a03000 mov r3, #0
00048 e5823000 str r3, [r2]
0004c e59d3010 ldr r3, [sp, #0x10]
00050 e2832014 add r2, r3, #0x14
00054 e3a03000 mov r3, #0
00058 e5823000 str r3, [r2]
0005c e59d3010 ldr r3, [sp, #0x10]
00060 e2832018 add r2, r3, #0x18
00064 e3a03ffa mov r3, #0xFA, 30
00068 e5823000 str r3, [r2]
0006c e59d3010 ldr r3, [sp, #0x10]
00070 e283201c add r2, r3, #0x1C
00074 e3a03000 mov r3, #0
00078 e5823000 str r3, [r2]
0007c e59d3010 ldr r3, [sp, #0x10]
00080 e2832020 add r2, r3, #0x20
00084 e3a03000 mov r3, #0
00088 e5823000 str r3, [r2]
0008c e59d3010 ldr r3, [sp, #0x10]
00090 e2832028 add r2, r3, #0x28
00094 e3a03000 mov r3, #0
00098 e5823000 str r3, [r2]
0009c e59d3010 ldr r3, [sp, #0x10]
000a0 e2832040 add r2, r3, #0x40
000a4 e3a030fa mov r3, #0xFA
000a8 e5823000 str r3, [r2]
000ac e59d3010 ldr r3, [sp, #0x10]
000b0 e2832044 add r2, r3, #0x44
000b4 e3a03000 mov r3, #0
000b8 e5823000 str r3, [r2]
000bc e59d3010 ldr r3, [sp, #0x10]
000c0 e2832048 add r2, r3, #0x48
000c4 e3a03000 mov r3, #0
000c8 e5823000 str r3, [r2]
000cc e59d3010 ldr r3, [sp, #0x10]
000d0 e283204c add r2, r3, #0x4C
000d4 e3a03000 mov r3, #0
000d8 e5823000 str r3, [r2]
000dc e59d3010 ldr r3, [sp, #0x10]
000e0 e28320b0 add r2, r3, #0xB0
000e4 e3a03000 mov r3, #0
000e8 e5823000 str r3, [r2]
; 134 : memset(&m_dxInfo, 0, sizeof(m_dxInfo));
000ec e3a02050 mov r2, #0x50
000f0 e3a01000 mov r1, #0
000f4 e59d3010 ldr r3, [sp, #0x10]
000f8 e2830060 add r0, r3, #0x60
000fc eb000000 bl memset
; 135 : m_dwStartTickCount = GetTickCount();
00100 eb000000 bl GetTickCount
00104 e58d0004 str r0, [sp, #4]
00108 e59d3010 ldr r3, [sp, #0x10]
0010c e2832050 add r2, r3, #0x50
00110 e59d3004 ldr r3, [sp, #4]
00114 e5823000 str r3, [r2]
; 136 : QueryPerformanceCounter(&m_startQPC);
00118 e59d3010 ldr r3, [sp, #0x10]
0011c e2830058 add r0, r3, #0x58
00120 eb000000 bl QueryPerformanceCounter
; 137 : m_dxInfo[m_curDx].dwCount++;
00124 e59d3010 ldr r3, [sp, #0x10]
00128 e2833008 add r3, r3, #8
0012c e5931000 ldr r1, [r3]
00130 e3a03010 mov r3, #0x10
00134 e0020391 mul r2, r1, r3
00138 e59d3010 ldr r3, [sp, #0x10]
0013c e2833060 add r3, r3, #0x60
00140 e0833002 add r3, r3, r2
00144 e5933000 ldr r3, [r3]
00148 e2830001 add r0, r3, #1
0014c e59d3010 ldr r3, [sp, #0x10]
00150 e2833008 add r3, r3, #8
00154 e5931000 ldr r1, [r3]
00158 e3a03010 mov r3, #0x10
0015c e0020391 mul r2, r1, r3
00160 e59d3010 ldr r3, [sp, #0x10]
00164 e2833060 add r3, r3, #0x60
00168 e0833002 add r3, r3, r2
0016c e5830000 str r0, [r3]
; 138 : InitializeCriticalSection(&m_csPower);
00170 e59d3010 ldr r3, [sp, #0x10]
00174 e283002c add r0, r3, #0x2C
00178 eb000000 bl InitializeCriticalSection
; 139 : }
0017c e59d3010 ldr r3, [sp, #0x10]
00180 e58d3000 str r3, [sp]
00184 e59d0000 ldr r0, [sp]
00188 e28dd008 add sp, sp, #8
0018c e89d6000 ldmia sp, {sp, lr}
00190 e12fff1e bx lr
00194 |$L32433|
00194 00000000 DCD |??_7CDiskPower@@6B@|
00198 |$M32430|
ENDP ; |??0CDiskPower@@QAA@XZ|, CDiskPower::CDiskPower
EXPORT |??1CDiskPower@@UAA@XZ| ; CDiskPower::~CDiskPower
IMPORT |??3@YAXPAX@Z| ; operator delete
00000 AREA |.text| { |??_GCDiskPower@@UAAPAXI@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$??_GCDiskPower@@UAAPAXI@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |??_GCDiskPower@@UAAPAXI@Z| } ; comdat associative
|$T32439| DCD |$L32438|
DCD 0x40001104
; Function compile flags: /Odt
00000 AREA |.text| { |??_GCDiskPower@@UAAPAXI@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |??_GCDiskPower@@UAAPAXI@Z| PROC ; CDiskPower::`scalar deleting destructor'
00000 |$L32438|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd004 sub sp, sp, #4
00010 |$M32436|
00010 e59d000c ldr r0, [sp, #0xC]
00014 eb000000 bl |??1CDiskPower@@UAA@XZ|
00018 e59d3010 ldr r3, [sp, #0x10]
0001c e3130001 tst r3, #1
00020 0a000001 beq |$L32009|
00024 e59d000c ldr r0, [sp, #0xC]
00028 eb000000 bl |??3@YAXPAX@Z|
0002c |$L32009|
0002c e59d300c ldr r3, [sp, #0xC]
00030 e58d3000 str r3, [sp]
00034 e59d0000 ldr r0, [sp]
00038 e28dd004 add sp, sp, #4
0003c e89d6000 ldmia sp, {sp, lr}
00040 e12fff1e bx lr
00044 |$M32437|
ENDP ; |??_GCDiskPower@@UAAPAXI@Z|, CDiskPower::`scalar deleting destructor'
EXPORT |??_C@_1HA@GOBHIDMB@?$AAd?$AA?3?$AA?2?$AAw?$AAi?$AAn?$AAc?$AAe?$AA5?$AA0?$AA0?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm@| [ DATA ] ; `string'
EXPORT |??_C@_1FK@FNONLNGN@?$AA?$CF?$AAs?$AA?3?$AA?5?$AAD?$AAE?$AAB?$AAU?$AAG?$AAC?$AAH?$AAK?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5@| [ DATA ] ; `string'
IMPORT |LocalFree|
IMPORT |WaitForSingleObject|
IMPORT |NKDbgPrintfW|
IMPORT |dpCurSettings|
IMPORT |DeleteCriticalSection|
IMPORT |CloseHandle|
00008 AREA |.pdata|, PDATA
|$T32448| DCD |$L32447|
DCD 0x40005004
00000 AREA |.rdata| { |??_C@_1FK@FNONLNGN@?$AA?$CF?$AAs?$AA?3?$AA?5?$AAD?$AAE?$AAB?$AAU?$AAG?$AAC?$AAH?$AAK?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FK@FNONLNGN@?$AA?$CF?$AAs?$AA?3?$AA?5?$AAD?$AAE?$AAB?$AAU?$AAG?$AAC?$AAH?$AAK?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5@| DCB "%"
DCB 0x0, "s", 0x0, ":", 0x0, " ", 0x0, "D", 0x0, "E", 0x0, "B"
DCB 0x0, "U", 0x0, "G", 0x0, "C", 0x0, "H", 0x0, "K", 0x0, " "
DCB 0x0, "f", 0x0, "a", 0x0, "i", 0x0, "l", 0x0, "e", 0x0, "d"
DCB 0x0, " ", 0x0, "i", 0x0, "n", 0x0, " ", 0x0, "f", 0x0, "i"
DCB 0x0, "l", 0x0, "e", 0x0, " ", 0x0, "%", 0x0, "s", 0x0, " "
DCB 0x0, "a", 0x0, "t", 0x0, " ", 0x0, "l", 0x0, "i", 0x0, "n"
DCB 0x0, "e", 0x0, " ", 0x0, "%", 0x0, "d", 0x0, " ", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1HA@GOBHIDMB@?$AAd?$AA?3?$AA?2?$AAw?$AAi?$AAn?$AAc?$AAe?$AA5?$AA0?$AA0?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1HA@GOBHIDMB@?$AAd?$AA?3?$AA?2?$AAw?$AAi?$AAn?$AAc?$AAe?$AA5?$AA0?$AA0?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm@| DCB "d"
DCB 0x0, ":", 0x0, "\\", 0x0, "w", 0x0, "i", 0x0, "n", 0x0, "c"
DCB 0x0, "e", 0x0, "5", 0x0, "0", 0x0, "0", 0x0, "\\", 0x0, "p"
DCB 0x0, "l", 0x0, "a", 0x0, "t", 0x0, "f", 0x0, "o", 0x0, "r"
DCB 0x0, "m", 0x0, "\\", 0x0, "s", 0x0, "m", 0x0, "d", 0x0, "k"
DCB 0x0, "2", 0x0, "4", 0x0, "4", 0x0, "0", 0x0, "\\", 0x0, "d"
DCB 0x0, "r", 0x0, "i", 0x0, "v", 0x0, "e", 0x0, "r", 0x0, "s"
DCB 0x0, "\\", 0x0, "a", 0x0, "t", 0x0, "a", 0x0, "p", 0x0, "i"
DCB 0x0, "\\", 0x0, "a", 0x0, "t", 0x0, "a", 0x0, "p", 0x0, "i"
DCB 0x0, "p", 0x0, "m", 0x0, ".", 0x0, "c", 0x0, "p", 0x0, "p"
DCB 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Odt
00198 AREA |.text|, CODE, ARM
00198 |??1CDiskPower@@UAA@XZ| PROC ; CDiskPower::~CDiskPower
; 142 : {
00198 |$L32447|
00198 e1a0c00d mov r12, sp
0019c e92d0001 stmdb sp!, {r0}
001a0 e92d5000 stmdb sp!, {r12, lr}
001a4 e24dd004 sub sp, sp, #4
001a8 |$M32445|
001a8 e59f2124 ldr r2, [pc, #0x124]
001ac e59d300c ldr r3, [sp, #0xC]
001b0 e5832000 str r2, [r3]
; 143 : if(m_htPower) {
001b4 e59d300c ldr r3, [sp, #0xC]
001b8 e283301c add r3, r3, #0x1C
001bc e5933000 ldr r3, [r3]
001c0 e3530000 cmp r3, #0
001c4 0a00001e beq |$L32014|
; 144 : DEBUGCHK(m_hevPowerSignal);
001c8 e59d300c ldr r3, [sp, #0xC]
001cc e2833020 add r3, r3, #0x20
001d0 e5933000 ldr r3, [r3]
001d4 e3530000 cmp r3, #0
001d8 0a000002 beq |$L32443|
001dc e3a03001 mov r3, #1
001e0 e58d3000 str r3, [sp]
001e4 ea000007 b |$L32444|
001e8 |$L32443|
001e8 e3a03090 mov r3, #0x90
001ec e59f20dc ldr r2, [pc, #0xDC]
001f0 e59f10d4 ldr r1, [pc, #0xD4]
001f4 e59f00cc ldr r0, [pc, #0xCC]
001f8 eb000000 bl NKDbgPrintfW
001fc e6000010 DCD 0xe6000010
00200 e3a03000 mov r3, #0
00204 e58d3000 str r3, [sp]
00208 |$L32444|
; 145 : m_fShutdownPowerThread = TRUE;
00208 e59d300c ldr r3, [sp, #0xC]
0020c e2832028 add r2, r3, #0x28
00210 e3a03001 mov r3, #1
00214 e5823000 str r3, [r2]
; 146 : SignalActivity();
00218 e59d000c ldr r0, [sp, #0xC]
0021c eb000000 bl |?SignalActivity@CDiskPower@@UAAXXZ|
; 147 : WaitForSingleObject(m_htPower, INFINITE);
00220 e3e01000 mvn r1, #0
00224 e59d300c ldr r3, [sp, #0xC]
00228 e283301c add r3, r3, #0x1C
0022c e5930000 ldr r0, [r3]
00230 eb000000 bl WaitForSingleObject
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -