📄 driver.cod
字号:
004ec e3a04006 mov r4, #6
004f0 e5874000 str r4, [r7]
004f4 e3560006 cmp r6, #6
004f8 3a000067 bcc |$L36302|
004fc e598000c ldr r0, [r8, #0xC]
00500 e28d1014 add r1, sp, #0x14
00504 e5903000 ldr r3, [r0]
00508 e5933004 ldr r3, [r3, #4]
0050c e1a0e00f mov lr, pc
00510 e12fff13 bx r3
00514 ea000064 b |$L36300|
00518 |$L35529|
; 544 :
; 545 : HANDLE_QUERY( OID_802_3_RCV_ERROR_ALIGNMENT,
; 546 : &m_pLower->m_szStatistics[TID_802_3_RCV_ERROR_ALIGNMENT],sizeof(U32));
00518 e3a04004 mov r4, #4
0051c e5874000 str r4, [r7]
00520 e3560004 cmp r6, #4
00524 3a00005c bcc |$L36302|
00528 e598300c ldr r3, [r8, #0xC]
0052c e2830f57 add r0, r3, #0x57, 30
00530 ea00005d b |$L36300|
00534 |$L36286|
; 500 :
; 501 : switch (Oid) {
00534 e59f31c4 ldr r3, [pc, #0x1C4]
00538 e1590003 cmp r9, r3
0053c 8a00002f bhi |$L36288|
00540 0a000027 beq |$L35535|
00544 e59f31b0 ldr r3, [pc, #0x1B0]
00548 e1590003 cmp r9, r3
0054c 0a00001d beq |$L35541|
00550 e59f31a0 ldr r3, [pc, #0x1A0]
00554 e1590003 cmp r9, r3
00558 0a000013 beq |$L35547|
0055c e59f3190 ldr r3, [pc, #0x190]
00560 e1590003 cmp r9, r3
00564 0a000009 beq |$L35553|
00568 e59f3180 ldr r3, [pc, #0x180]
0056c e1590003 cmp r9, r3
00570 1a00002e bne |$L35679|
; 555 : HANDLE_QUERY( OID_802_3_XMIT_MAX_COLLISIONS,
; 556 : &m_pLower->m_szStatistics[TID_802_3_XMIT_MAX_COLLISIONS],sizeof(U32));
00574 e3a04004 mov r4, #4
00578 e5874000 str r4, [r7]
0057c e3560004 cmp r6, #4
00580 3a000045 bcc |$L36302|
00584 e598300c ldr r3, [r8, #0xC]
00588 e2830e17 add r0, r3, #0x17, 28
0058c ea000046 b |$L36300|
00590 |$L35553|
; 553 : HANDLE_QUERY( OID_802_3_XMIT_DEFERRED,
; 554 : &m_pLower->m_szStatistics[TID_802_3_XMIT_DEFERRED],sizeof(U32));
00590 e3a04004 mov r4, #4
00594 e5874000 str r4, [r7]
00598 e3560004 cmp r6, #4
0059c 3a00003e bcc |$L36302|
005a0 e598300c ldr r3, [r8, #0xC]
005a4 e2830f5b add r0, r3, #0x5B, 30
005a8 ea00003f b |$L36300|
005ac |$L35547|
; 551 : HANDLE_QUERY( OID_802_3_XMIT_MORE_COLLISIONS,
; 552 : &m_pLower->m_szStatistics[TID_802_3_XMIT_MORE_COLLISIONS],sizeof(U32));
005ac e3a04004 mov r4, #4
005b0 e5874000 str r4, [r7]
005b4 e3560004 cmp r6, #4
005b8 3a000037 bcc |$L36302|
005bc e598300c ldr r3, [r8, #0xC]
005c0 e2830f5a add r0, r3, #0x5A, 30
005c4 ea000038 b |$L36300|
005c8 |$L35541|
; 549 : HANDLE_QUERY( OID_802_3_XMIT_ONE_COLLISION,
; 550 : &m_pLower->m_szStatistics[TID_802_3_XMIT_ONE_COLLISION],sizeof(U32));
005c8 e3a04004 mov r4, #4
005cc e5874000 str r4, [r7]
005d0 e3560004 cmp r6, #4
005d4 3a000030 bcc |$L36302|
005d8 e598300c ldr r3, [r8, #0xC]
005dc e2830f59 add r0, r3, #0x59, 30
005e0 ea000031 b |$L36300|
005e4 |$L35535|
; 547 : HANDLE_QUERY( OID_802_3_RCV_OVERRUN,
; 548 : &m_pLower->m_szStatistics[TID_802_3_RCV_OVERRUN],sizeof(U32));
005e4 e3a04004 mov r4, #4
005e8 e5874000 str r4, [r7]
005ec e3560004 cmp r6, #4
005f0 3a000029 bcc |$L36302|
005f4 e598300c ldr r3, [r8, #0xC]
005f8 e2830e16 add r0, r3, #0x16, 28
005fc ea00002a b |$L36300|
00600 |$L36288|
; 500 :
; 501 : switch (Oid) {
00600 e59f30e4 ldr r3, [pc, #0xE4]
00604 e1590003 cmp r9, r3
00608 0a00001f beq |$L35565|
0060c e59f30d4 ldr r3, [pc, #0xD4]
00610 e1590003 cmp r9, r3
00614 0a000015 beq |$L35571|
00618 e59f30c4 ldr r3, [pc, #0xC4]
0061c e1590003 cmp r9, r3
00620 0a00000b beq |$L35577|
00624 e59f30b4 ldr r3, [pc, #0xB4]
00628 e1590003 cmp r9, r3
0062c 0a000001 beq |$L35583|
00630 |$L35679|
; 609 :
; 610 : default:
; 611 : status = NDIS_STATUS_INVALID_OID;
00630 e59f40a4 ldr r4, [pc, #0xA4]
; 612 : break;
00634 ea000023 b |$L35683|
00638 |$L35583|
; 563 : HANDLE_QUERY( OID_802_3_XMIT_LATE_COLLISIONS,
; 564 : &m_pLower->m_szStatistics[TID_802_3_XMIT_LATE_COLLISIONS],sizeof(U32));
00638 e3a04004 mov r4, #4
0063c e5874000 str r4, [r7]
00640 e3560004 cmp r6, #4
00644 3a000014 bcc |$L36302|
00648 e598300c ldr r3, [r8, #0xC]
0064c e2830d06 add r0, r3, #6, 26
00650 ea000015 b |$L36300|
00654 |$L35577|
; 561 : HANDLE_QUERY( OID_802_3_XMIT_TIMES_CRS_LOST,
; 562 : &m_pLower->m_szStatistics[TID_802_3_XMIT_TIMES_CRS_LOST],sizeof(U32));
00654 e3a04004 mov r4, #4
00658 e5874000 str r4, [r7]
0065c e3560004 cmp r6, #4
00660 3a00000d bcc |$L36302|
00664 e598300c ldr r3, [r8, #0xC]
00668 e2830f5f add r0, r3, #0x5F, 30
0066c ea00000e b |$L36300|
00670 |$L35571|
; 559 : HANDLE_QUERY( OID_802_3_XMIT_HEARTBEAT_FAILURE,
; 560 : &m_pLower->m_szStatistics[TID_802_3_XMIT_HEARTBEAT_FAILURE],sizeof(U32));
00670 e3a04004 mov r4, #4
00674 e5874000 str r4, [r7]
00678 e3560004 cmp r6, #4
0067c 3a000006 bcc |$L36302|
00680 e598300c ldr r3, [r8, #0xC]
00684 e2830f5e add r0, r3, #0x5E, 30
00688 ea000007 b |$L36300|
0068c |$L35565|
; 557 : HANDLE_QUERY( OID_802_3_XMIT_UNDERRUN,
; 558 : &m_pLower->m_szStatistics[TID_802_3_XMIT_UNDERRUN],sizeof(U32));
0068c e3a04004 mov r4, #4
00690 e5874000 str r4, [r7]
00694 e3560004 cmp r6, #4
00698 2a000001 bcs |$L35567|
0069c |$L36302|
0069c e59f4034 ldr r4, [pc, #0x34]
006a0 ea000008 b |$L35683|
006a4 |$L35567|
006a4 e598300c ldr r3, [r8, #0xC]
006a8 e2830f5d add r0, r3, #0x5D, 30
006ac |$L36300|
006ac e5854000 str r4, [r5]
006b0 |$L35432|
; 613 : } // of switch
; 614 :
; 615 : if(status == NDIS_STATUS_SUCCESS)
006b0 e59d400c ldr r4, [sp, #0xC]
006b4 e3540000 cmp r4, #0
; 616 : {
; 617 : NdisMoveMemory(InfoBuffer,panswer,*BytesWritten);
006b8 05952000 ldreq r2, [r5]
006bc 01a01000 moveq r1, r0
006c0 01a0000a moveq r0, r10
006c4 0b000000 bleq memcpy
006c8 |$L35683|
; 485 : NDIS_STATUS status = NDIS_STATUS_SUCCESS;
; 486 :
; 487 : PVOID panswer;
; 488 : U8 szbuffer[32];
; 489 : U32 tmp32;
; 490 :
; 491 : // pass to lower object, to see if it can handle this query,
; 492 : // if it can, return TRUE and set status.
; 493 : if(m_pLower->DeviceQueryInformation(
; 494 : &status,
; 495 : Oid,
; 496 : InfoBuffer,
; 497 : InfoBufferLength,
; 498 : BytesWritten,
; 499 : BytesNeeded)) return status;
006c8 e1a00004 mov r0, r4
; 618 : }
; 619 :
; 620 : return status;
; 621 : }
006cc e28dd034 add sp, sp, #0x34
006d0 e8bd47f0 ldmia sp!, {r4 - r10, lr}
006d4 e12fff1e bx lr
006d8 |$L36310|
006d8 c0010014 DCD 0xc0010014
006dc c0010017 DCD 0xc0010017
006e0 01020207 DCD 0x1020207
006e4 01020206 DCD 0x1020206
006e8 01020205 DCD 0x1020205
006ec 01020204 DCD 0x1020204
006f0 01020202 DCD 0x1020202
006f4 01020201 DCD 0x1020201
006f8 01020103 DCD 0x1020103
006fc 01020102 DCD 0x1020102
00700 01020203 DCD 0x1020203
00704 01010104 DCD 0x1010104
00708 01010103 DCD 0x1010103
0070c 01010102 DCD 0x1010102
00710 01010101 DCD 0x1010101
00714 00020105 DCD 0x20105
00718 00020103 DCD 0x20103
0071c 00020102 DCD 0x20102
00720 0002020d DCD 0x2020d
00724 01020101 DCD 0x1020101
00728 00000000 DCD |??_C@_0BL@BLOGHFBJ@Davicom?5Semiconductor?0?5Inc?$AA@|
0072c 00000000 DCD |?gszNICSupportedOid@@3PAKA|
00730 00010101 DCD 0x10101
00734 00020101 DCD 0x20101
00738 |$M36306|
ENDP ; |?DriverQueryInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z|, NIC_DRIVER_OBJECT::DriverQueryInformation
EXPORT |?DriverSetInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z| ; NIC_DRIVER_OBJECT::DriverSetInformation
00000 AREA |.text| { |?DriverSetInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DriverSetInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DriverSetInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z| } ; comdat associative
|$T36326| DCD |$L36325|
DCD 0x40004902
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DriverSetInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DriverSetInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z| PROC ; NIC_DRIVER_OBJECT::DriverSetInformation
; 638 : {
00000 |$L36325|
00000 e92d47f0 stmdb sp!, {r4 - r10, lr}
00004 e24dd010 sub sp, sp, #0x10
00008 |$M36323|
00008 e1a06003 mov r6, r3
0000c e1a09002 mov r9, r2
00010 e1a05001 mov r5, r1
00014 e1a07000 mov r7, r0
; 639 : NDIS_STATUS status = NDIS_STATUS_SUCCESS;
; 640 :
; 641 : // pass to lower object, to see if it can handle this request,
; 642 : // if it can, return TRUE and set status.
; 643 : if(m_pLower->DeviceSetInformation(
; 644 : &status,
; 645 : Oid,
; 646 : InfoBuffer,
; 647 : InfoBufferLength,
; 648 : BytesRead,
; 649 : BytesNeeded)) return status;
00018 e597000c ldr r0, [r7, #0xC]
0001c e3a03000 mov r3, #0
00020 e59d8034 ldr r8, [sp, #0x34]
00024 e58d300c str r3, [sp, #0xC]
00028 e590e000 ldr lr, [r0]
0002c e59da030 ldr r10, [sp, #0x30]
00030 e1a03009 mov r3, r9
00034 e59e4024 ldr r4, [lr, #0x24]
00038 e1a02005 mov r2, r5
0003c e28d100c add r1, sp, #0xC
00040 e58d8008 str r8, [sp, #8]
00044 e58da004 str r10, [sp, #4]
00048 e58d6000 str r6, [sp]
0004c e1a0e00f mov lr, pc
00050 e12fff14 bx r4
00054 e3500000 cmp r0, #0
00058 1a000027 bne |$L36314|
; 650 :
; 651 : switch (Oid)
0005c e59f30bc ldr r3, [pc, #0xBC]
00060 e1550003 cmp r5, r3
00064 0a000018 beq |$L35700|
00068 e59f30ac ldr r3, [pc, #0xAC]
0006c e1550003 cmp r5, r3
00070 0a000021 beq |$L36314|
00074 e59f309c ldr r3, [pc, #0x9C]
00078 e1550003 cmp r5, r3
; 666 :
; 667 : // don't care oids
; 668 : case OID_GEN_CURRENT_LOOKAHEAD:
; 669 : break;
; 670 :
; 671 : case OID_GEN_NETWORK_LAYER_ADDRESSES:
; 672 : default:
; 673 : status = NDIS_STATUS_INVALID_OID;
0007c 159f0090 ldrne r0, [pc, #0x90]
00080 1a00001e bne |$L35697|
00084 e597300c ldr r3, [r7, #0xC]
00088 e1a02006 mov r2, r6
0008c e1a01009 mov r1, r9
00090 e2830f79 add r0, r3, #0x79, 30
00094 eb000000 bl memcpy
00098 e59f3070 ldr r3, [pc, #0x70]
0009c e597200c ldr r2, [r7, #0xC]
000a0 e0831396 umull r1, r3, r6, r3
000a4 e1a03123 mov r3, r3, lsr #2
000a8 e5823364 str r3, [r2, #0x364]
000ac e597000c ldr r0, [r7, #0xC]
000b0 e5903000 ldr r3, [r0]
000b4 e5902118 ldr r2, [r0, #0x118]
000b8 e5933040 ldr r3, [r3, #0x40]
000bc e3821002 orr r1, r2, #2
000c0 e1a0e00f mov lr, pc
000c4 e12fff13 bx r3
000c8 ea00000b b |$L36314|
000cc |$L35700|
; 652 : {
; 653 : HANDLE_SET( OID_GEN_CURRENT_PACKET_FILTER,sizeof(U32));
000cc e3a03004 mov r3, #4
000d0 e3560004 cmp r6, #4
000d4 359f0030 ldrcc r0, [pc, #0x30]
000d8 e5883000 str r3, [r8]
000dc 3a000007 bcc |$L35697|
000e0 e58a3000 str r3, [r10]
000e4 e597000c ldr r0, [r7, #0xC]
000e8 e5991000 ldr r1, [r9]
000ec e5903000 ldr r3, [r0]
000f0 e5933040 ldr r3, [r3, #0x40]
000f4 e1a0e00f mov lr, pc
000f8 e12fff13 bx r3
000fc |$L36314|
; 654 :
; 655 : case OID_802_3_MULTICAST_LIST:
; 656 : NdisMoveMemory(
; 657 : &m_pLower->m_szMulticastList[0][0],
; 658 : InfoBuffer,
; 659 : InfoBufferLength);
; 660 : m_pLower->m_nMulticasts =
; 661 : InfoBufferLength / ETH_ADDRESS_LENGTH;
; 662 : m_pLower->D
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -