📄 atamain.cod
字号:
; 508 : }
; 509 : else
; 510 : {
; 511 : //
; 512 : // Reset the root back...
; 513 : //
; 514 : RETAILMSG(1,(TEXT("IDE reset-----\r\n")));
0018c e59f007c ldr r0, [pc, #0x7C]
00190 eb000000 bl NKDbgPrintfW
; 515 : g_pDiskRoot = pDisk->m_pNextDisk;
00194 e595300c ldr r3, [r5, #0xC]
; 516 : delete pDisk;
00198 e3a01001 mov r1, #1
0019c e1a00005 mov r0, r5
001a0 e586309c str r3, [r6, #0x9C]
001a4 e5953000 ldr r3, [r5]
001a8 e5933000 ldr r3, [r3]
001ac e1a0e00f mov lr, pc
001b0 e12fff13 bx r3
; 517 : pDisk = NULL;
001b4 e3a05000 mov r5, #0
001b8 |$L33092|
; 518 : }
; 519 : }
; 520 : }
; 521 : if (szDevKey)
001b8 e3540000 cmp r4, #0
; 522 : LocalFree( szDevKey);
001bc 11a00004 movne r0, r4
001c0 1b000000 blne LocalFree
001c4 |$L33096|
; 523 : RegCloseKey( hActiveKey);
001c4 e59d0004 ldr r0, [sp, #4]
001c8 eb000000 bl RegCloseKey
001cc |$L33079|
; 524 : }
; 525 :
; 526 :
; 527 : LeaveCriticalSection( &g_csMain);
001cc e1a00006 mov r0, r6
001d0 eb000000 bl LeaveCriticalSection
; 528 :
; 529 : if ( NULL == pDisk )
001d4 e3550000 cmp r5, #0
; 530 : {
; 531 : RETAILMSG(1,(TEXT("DSK_Init failed-----\r\n")));
001d8 059f002c ldreq r0, [pc, #0x2C]
001dc 0b000000 bleq NKDbgPrintfW
; 532 : }
; 533 :
; 534 :
; 535 : RETAILMSG(1,(TEXT("------------\r\n")));
001e0 e59f0020 ldr r0, [pc, #0x20]
001e4 eb000000 bl NKDbgPrintfW
; 536 : RETAILMSG(1,(TEXT(" >>>>>-----pDisk=0x%x\r\n"),pDisk));
001e8 e59f0014 ldr r0, [pc, #0x14]
001ec e1a01005 mov r1, r5
001f0 eb000000 bl NKDbgPrintfW
; 537 :
; 538 : return ((DWORD)pDisk);
001f4 e1a00005 mov r0, r5
; 539 : }
001f8 e28dd00c add sp, sp, #0xC
001fc e8bd41f0 ldmia sp!, {r4 - r8, lr}
00200 e12fff1e bx lr
00204 |$L33522|
00204 00000000 DCD |??_C@_1DA@KGFEKKNL@?$AA?5?$AA?$DO?$AA?$DO?$AA?$DO?$AA?$DO?$AA?$DO?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AAp?$AAD?$AAi?$AAs?$AAk?$AA?$DN?$AA0?$AAx?$AA?$CF@|
00208 00000000 DCD |??_C@_1BO@JFNKJLCM@?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6?$AA?$AA@|
0020c 00000000 DCD |??_C@_1CO@KOAMLMDG@?$AAD?$AAS?$AAK?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9@|
00210 00000000 DCD |??_C@_1CC@CNGNFKEG@?$AAI?$AAD?$AAE?$AA?5?$AAr?$AAe?$AAs?$AAe?$AAt?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6?$AA?$AA@|
00214 00000000 DCD |??_C@_1EC@DIHLFDEB@?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9@|
00218 00000000 DCD |??_C@_1CG@COODOPE@?$AAI?$AAD?$AAE?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6?$AA?$AA@|
0021c 00000000 DCD |??_C@_1DO@OJOELLHC@?$AAI?$AAD?$AAE?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?5?$AAA?$AAc?$AAt?$AAi?$AAv?$AAe?$AAK@|
00220 00000000 DCD |?g_csMain@@3UCRITICAL_SECTION@@A|
00224 |$M33518|
ENDP ; |DSK_Init|
EXPORT |DSK_Deinit|
EXPORT |??_C@_1CK@GHKIIPKF@?$AAI?$AAD?$AAE?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAD?$AAe?$AAi?$AAn?$AAi?$AAt?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6@| [ DATA ] ; `string'
00000 AREA |.text| { |DSK_Deinit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DSK_Deinit|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Deinit| } ; comdat associative
|$T33542| DCD |$L33541|
DCD 0x40002301
00000 AREA |.rdata| { |??_C@_1CK@GHKIIPKF@?$AAI?$AAD?$AAE?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAD?$AAe?$AAi?$AAn?$AAi?$AAt?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CK@GHKIIPKF@?$AAI?$AAD?$AAE?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAD?$AAe?$AAi?$AAn?$AAi?$AAt?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6@| DCB "I"
DCB 0x0, "D", 0x0, "E", 0x0, " ", 0x0, "D", 0x0, "S", 0x0, "K"
DCB 0x0, "_", 0x0, "D", 0x0, "e", 0x0, "i", 0x0, "n", 0x0, "i"
DCB 0x0, "t", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |DSK_Deinit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DSK_Deinit| PROC
; 562 : {
00000 |$L33541|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 |$M33539|
00004 e1a07000 mov r7, r0
; 563 : CDisk *pDiskPrev=NULL, *pDiskCur=g_pDiskRoot;
00008 e59f5078 ldr r5, [pc, #0x78]
; 564 : DEBUGMSG( ZONE_MAIN, (TEXT("ATAPI: DSK_Deinit pHandle = %08X\r\n"), pHandle));
; 565 :
; 566 : RETAILMSG(1,(TEXT("IDE DSK_Deinit----\r\n")));
0000c e59f0070 ldr r0, [pc, #0x70]
00010 e3a06000 mov r6, #0
00014 e595409c ldr r4, [r5, #0x9C]
00018 eb000000 bl NKDbgPrintfW
; 567 :
; 568 : EnterCriticalSection (&g_csMain);
0001c e1a00005 mov r0, r5
00020 eb000000 bl EnterCriticalSection
; 569 : while(pDiskCur)
00024 e3540000 cmp r4, #0
00028 0a000010 beq |$L33529|
0002c |$L33110|
; 570 : {
; 571 : if(pDiskCur == (CDisk *)pHandle)
0002c e1540007 cmp r4, r7
00030 0a000003 beq |$L33532|
; 572 : break;
; 573 : pDiskPrev = pDiskCur;
; 574 : pDiskCur = pDiskCur->m_pNextDisk;
00034 e594300c ldr r3, [r4, #0xC]
00038 e1a06004 mov r6, r4
0003c e1b04003 movs r4, r3
00040 1afffff9 bne |$L33110|
00044 |$L33532|
; 575 : }
; 576 : if (pDiskCur)
00044 e3540000 cmp r4, #0
00048 0a000008 beq |$L33529|
; 577 : {
; 578 : if (pDiskPrev)
0004c e3560000 cmp r6, #0
; 579 : pDiskPrev = pDiskCur->m_pNextDisk;
; 580 : else
; 581 : g_pDiskRoot = pDiskCur->m_pNextDisk;
00050 0594300c ldreq r3, [r4, #0xC]
; 582 : delete pDiskCur;
00054 e3a01001 mov r1, #1
00058 e1a00004 mov r0, r4
0005c 0585309c streq r3, [r5, #0x9C]
00060 e5943000 ldr r3, [r4]
00064 e5933000 ldr r3, [r3]
00068 e1a0e00f mov lr, pc
0006c e12fff13 bx r3
00070 |$L33529|
; 583 : }
; 584 : LeaveCriticalSection( &g_csMain);
00070 e1a00005 mov r0, r5
00074 eb000000 bl LeaveCriticalSection
; 585 : return TRUE;
00078 e3a00001 mov r0, #1
; 586 : }
0007c e8bd40f0 ldmia sp!, {r4 - r7, lr}
00080 e12fff1e bx lr
00084 |$L33544|
00084 00000000 DCD |??_C@_1CK@GHKIIPKF@?$AAI?$AAD?$AAE?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAD?$AAe?$AAi?$AAn?$AAi?$AAt?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6@|
00088 00000000 DCD |?g_csMain@@3UCRITICAL_SECTION@@A|
0008c |$M33540|
ENDP ; |DSK_Deinit|
EXPORT |DSK_Open|
EXPORT |??_C@_1DI@GJBNBHPJ@?$AAD?$AAS?$AAK?$AA_?$AAO?$AAp?$AAe?$AAn?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9@| [ DATA ] ; `string'
; File c:\wince500\platform\bvdmain\drivers\atapi\diskmain.h
00000 AREA |.text| { |DSK_Open| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DSK_Open|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Open| } ; comdat associative
|$T33560| DCD |$L33559|
DCD 0x40000801
00000 AREA |.rdata| { |??_C@_1DI@GJBNBHPJ@?$AAD?$AAS?$AAK?$AA_?$AAO?$AAp?$AAe?$AAn?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DI@GJBNBHPJ@?$AAD?$AAS?$AAK?$AA_?$AAO?$AAp?$AAe?$AAn?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9@| DCB "D"
DCB 0x0, "S", 0x0, "K", 0x0, "_", 0x0, "O", 0x0, "p", 0x0, "e"
DCB 0x0, "n", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-"
DCB 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-"
DCB 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-"
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
; File c:\wince500\platform\bvdmain\drivers\atapi\atamain.cpp
00000 AREA |.text| { |DSK_Open| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DSK_Open| PROC
; 609 : {
00000 |$L33559|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M33557|
00004 e1a04000 mov r4, r0
; 610 : CDisk *pDisk = (CDisk *)pHandle;
; 611 : //liudiping
; 612 : RETAILMSG(1,(TEXT("DSK_Open-----------------\r\n")));
00008 e59f000c ldr r0, [pc, #0xC]
0000c eb000000 bl NKDbgPrintfW
; 613 : return (DWORD)pDisk ;
00010 e1a00004 mov r0, r4
; 614 : DEBUGMSG
; 615 : (
; 616 : ZONE_MAIN,
; 617 : (
; 618 : TEXT("ATAPI:DSK_Open request Handle = %08 dwAccess=%08X dwShareMode=%08X\r\n"),
; 619 : pHandle,
; 620 : dwAccess,
; 621 : dwShareMode
; 622 : )
; 623 : );
; 624 :
; 625 : RETAILMSG(1,(TEXT("IDE DSK_Open----\r\n")));
; 626 :
; 627 : EnterCriticalSection( &g_csMain);
; 628 : if (!AtaIsValidDisk(pDisk))
; 629 : {
; 630 : pDisk = NULL;
; 631 : }
; 632 : LeaveCriticalSection( &g_csMain);
; 633 :
; 634 : if (pDisk)
; 635 : {
; 636 : pDisk->Open();
; 637 : }
; 638 : return (DWORD)pDisk;
; 639 : }
00014 e8bd4010 ldmia sp!, {r4, lr}
00018 e12fff1e bx lr
0001c |$L33562|
0001c 00000000 DCD |??_C@_1DI@GJBNBHPJ@?$AAD?$AAS?$AAK?$AA_?$AAO?$AAp?$AAe?$AAn?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9@|
00020 |$M33558|
ENDP ; |DSK_Open|
EXPORT |DSK_Close|
; File c:\wince500\platform\bvdmain\drivers\atapi\diskmain.h
00000 AREA |.text| { |DSK_Close| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DSK_Close|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Close| } ; comdat associative
|$T33577| DCD |$L33576|
DCD 0x40001501
; Function compile flags: /Ogsy
; File c:\wince500\platform\bvdmain\drivers\atapi\atamain.cpp
00000 AREA |.text| { |DSK_Close| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DSK_Close| PROC
; 654 : {
00000 |$L33576|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M33574|
00004 e1a04000 mov r4, r0
; 655 : CDisk *pDisk = (CDisk *)pHandle;
; 656 : DEBUGMSG( ZONE_MAIN, (TEXT("ATAPI:DSK_Close request Handle = %08X\r\n"), pHandle));
; 657 : EnterCriticalSection( &g_csMain);
00008 e59f0040 ldr r0, [pc, #0x40]
0000c eb000000 bl EnterCriticalSection
; 658 : if (!AtaIsValidDisk(pDisk))
00010 e1a00004 mov r0, r4
00014 eb000000 bl |?AtaIsValidDisk@@YAHPAVCDisk@@@Z|
00018 e3500000 cmp r0, #0
; 659 : {
; 660 : pDisk = NULL;
; 661 : }
; 662 : LeaveCriticalSection( &g_csMain);
0001c e59f002c ldr r0, [pc, #0x2C]
00020 03a04000 moveq r4, #0
00024 eb000000 bl LeaveCriticalSection
; 663 : if (pDisk)
00028 e3540000 cmp r4, #0
0002c 0a000004 beq |$L33565|
; 664 : {
; 665 : pDisk->Close();
00030 e284002c add r0, r4, #0x2C
00034 eb000000 bl InterlockedDecrement
; 666 : }
; 667 : return (pDisk!= NULL);
00038 e3a00001 mov r0, #1
; 668 : }
0003c e8bd4010 ldmia sp!, {r4, lr}
00040 e12fff1e bx lr
00044 |$L33565|
; 666 : }
; 667 : return (pDisk!= NULL);
00044 e3a00000 mov r0, #0
; 668 : }
00048 e8bd4010 ldmia sp!, {r4, lr}
0004c e12fff1e bx lr
00050 |$L33579|
00050 00000000 DCD |?g_csMain@@3UCRITICAL_SECTION@@A|
00054 |$M33575|
ENDP ; |DSK_Close|
EXPORT |DSK_IOControl|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -