📄 miniport.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.00.9178
TITLE .\miniport.c
.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA ENDS
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST ENDS
_BSS SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS ENDS
$$SYMBOLS SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS ENDS
$$TYPES SEGMENT BYTE USE32 'DEBTYP'
$$TYPES ENDS
_TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS ENDS
; COMDAT _MPInitialize@24
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPSend@12
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPSendPackets@12
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPQueryInformation@24
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPQueryPNPCapabilities@8
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPSetInformation@24
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPProcessSetPowerOid@24
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPReturnPacket@8
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPTransferData@24
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPHalt@4
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPCancelSendPackets@8
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPDevicePnPEvent@16
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPAdapterShutdown@4
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
; COMDAT _MPFreeAllPacketPools@4
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT ENDS
FLAT GROUP _DATA, CONST, _BSS
ASSUME CS: FLAT, DS: FLAT, SS: FLAT
endif
INCLUDELIB LIBC
INCLUDELIB OLDNAMES
_DATA SEGMENT
COMM _DrvCompileInfo:BYTE:016H
_home3 DB 00H
DB 0c0H
DB 0a8H
DB 082H
DB 050H
DB 07bH
ORG $+2
_home2_2 DB 00H
DB 020H
DB 078H
DB 00H
DB 0e9H
DB 0cdH
ORG $+2
_home2_4 DB 00H
DB 04H
DB 05aH
DB 07dH
DB 04dH
DB 00H
ORG $+2
_home3IPAddr DD 0c0a80105H
_home2_2IPAddr DD 0c0a80102H
_home2_4IPAddr DD 0c0a80104H
_DATA ENDS
CONST SEGMENT
_NICGuidList DD 05635de7fH
DW 044e4H
DW 04dd6H
DB 0b2H
DB 0a8H
DB 02aH
DB 02aH
DB 088H
DB 08aH
DB 049H
DB 0b3H
DD 0ffa0c901H
DD 04H
DD 031H
DD 05635de81H
DW 044e4H
DW 04dd6H
DB 0b2H
DB 0a8H
DB 02aH
DB 02aH
DB 088H
DB 08aH
DB 049H
DB 0b3H
DD 0ffa0c903H
DD 04H
DD 071H
CONST ENDS
_DATA SEGMENT
?DateCompiledBase@?2??MPInitialize@@9@9 DB 'Dec 3 2003', 00H ; `MPInitialize'::`3'::DateCompiledBase
?TimeCompiledBase@?2??MPInitialize@@9@9 DB ' 17:42:26', 00H ; `MPInitialize'::`3'::TimeCompiledBase
_DATA ENDS
PUBLIC _MPInitialize@24
EXTRN _PtRegisterDevice@0:NEAR
EXTRN __imp__NdisAcquireSpinLock@4:NEAR
EXTRN __imp__NdisReleaseSpinLock@4:NEAR
EXTRN __imp__NdisIMGetDeviceContext@4:NEAR
EXTRN __imp__NdisInitializeReadWriteLock@4:NEAR
EXTRN __imp__NdisMSetAttributesEx@20:NEAR
EXTRN _pAdaptList:DWORD
EXTRN _GlobalLock:QWORD
EXTRN __imp__RtlAssert@16:NEAR
EXTRN _PassthruWMISetAddrArray@12:NEAR
EXTRN __imp__NdisSetEvent@4:NEAR
EXTRN _DbgPrint:NEAR
; COMDAT _MPInitialize@24
; File g:\pcadev\ndisim\passthruex\part2\james\james\sys\miniport.c
_TEXT SEGMENT
$SG16053 DB 'Passthru: ', 00H
ORG $+1
$SG16054 DB 'JApassthru.miniport v1.03 (compiled %s)', 0aH, 00H
ORG $+3
$SG16055 DB 'Passthru: ', 00H
ORG $+1
$SG16056 DB '==> Miniport Initialize: Adapt %p', 0aH, 00H
$SG16070 DB 'Passthru: ', 00H
ORG $+5
$SG16071 DB 'MPInitialize(): Failed inPassthruWMISetAddrArray(), sta'
DB 'tus 0x%08x!', 0aH, 00H
ORG $+3
$SG16077 DB 'g:\pcadev\ndisim\passthruex\part2\james\james\sys\minipo'
DB 'rt.c', 00H
ORG $+3
$SG16078 DB 'pAdapt->MiniportInitPending == TRUE', 00H
$SG16079 DB 'Passthru: ', 00H
ORG $+1
$SG16080 DB '<== Miniport Initialize: Adapt %p, Status %x', 0aH, 00H
; Function compile flags: /Odt
tv206 = -92
tv258 = -85
tv255 = -84
tv252 = -80
tv251 = -76
tv246 = -69
tv243 = -68
tv241 = -64
tv89 = -57
tv86 = -56
tv88 = -52
tv87 = -48
tv81 = -41
tv77 = -40
tv80 = -36
tv79 = -32
_DateCompiled$16050 = -28
_Status$ = -16
_Medium$ = -12
_i$ = -8
_pAdapt$ = -4
_OpenErrorStatus$ = 8
_SelectedMediumIndex$ = 12
_MediumArray$ = 16
_MediumArraySize$ = 20
_MiniportAdapterHandle$ = 24
_WrapperConfigurationContext$ = 28
_MPInitialize@24 PROC NEAR ; COMDAT
; 122 : {
0015e 55 push ebp
0015f 8b ec mov ebp, esp
00161 83 ec 5c sub esp, 92 ; 0000005cH
00164 56 push esi
00165 57 push edi
; 123 : UINT i;
; 124 : PADAPT pAdapt;
; 125 : NDIS_STATUS Status = NDIS_STATUS_FAILURE;
00166 c7 45 f0 01 00
00 c0 mov DWORD PTR _Status$[ebp], -1073741823 ; c0000001H
$L16043:
; 126 : NDIS_MEDIUM Medium;
; 127 :
; 128 : UNREFERENCED_PARAMETER(WrapperConfigurationContext);
; 129 :
; 130 : do
; 131 : {
; 132 :
; 133 : // Information output. ja, 29.11.2003.
; 134 :
; 135 : char static DateCompiledBase[] = __DATE__,
; 136 : TimeCompiledBase[] = " "__TIME__;
; 137 : char DateCompiled[] = // Build date in preferred (dd mmm yyyy) format.
; 138 : {DateCompiledBase[4], DateCompiledBase[5], DateCompiledBase[6],
0016d a0 04 00 00 00 mov al, BYTE PTR ?DateCompiledBase@?2??MPInitialize@@9@9+4
00172 88 45 e4 mov BYTE PTR _DateCompiled$16050[ebp], al
00175 8a 0d 05 00 00
00 mov cl, BYTE PTR ?DateCompiledBase@?2??MPInitialize@@9@9+5
0017b 88 4d e5 mov BYTE PTR _DateCompiled$16050[ebp+1], cl
0017e 8a 15 06 00 00
00 mov dl, BYTE PTR ?DateCompiledBase@?2??MPInitialize@@9@9+6
00184 88 55 e6 mov BYTE PTR _DateCompiled$16050[ebp+2], dl
; 139 : DateCompiledBase[0], DateCompiledBase[1], DateCompiledBase[2], DateCompiledBase[3],
00187 a0 00 00 00 00 mov al, BYTE PTR ?DateCompiledBase@?2??MPInitialize@@9@9
0018c 88 45 e7 mov BYTE PTR _DateCompiled$16050[ebp+3], al
0018f 8a 0d 01 00 00
00 mov cl, BYTE PTR ?DateCompiledBase@?2??MPInitialize@@9@9+1
00195 88 4d e8 mov BYTE PTR _DateCompiled$16050[ebp+4], cl
00198 8a 15 02 00 00
00 mov dl, BYTE PTR ?DateCompiledBase@?2??MPInitialize@@9@9+2
0019e 88 55 e9 mov BYTE PTR _DateCompiled$16050[ebp+5], dl
001a1 a0 03 00 00 00 mov al, BYTE PTR ?DateCompiledBase@?2??MPInitialize@@9@9+3
001a6 88 45 ea mov BYTE PTR _DateCompiled$16050[ebp+6], al
; 140 : DateCompiledBase[7], DateCompiledBase[8], DateCompiledBase[9], DateCompiledBase[10],
001a9 8a 0d 07 00 00
00 mov cl, BYTE PTR ?DateCompiledBase@?2??MPInitialize@@9@9+7
001af 88 4d eb mov BYTE PTR _DateCompiled$16050[ebp+7], cl
001b2 8a 15 08 00 00
00 mov dl, BYTE PTR ?DateCompiledBase@?2??MPInitialize@@9@9+8
001b8 88 55 ec mov BYTE PTR _DateCompiled$16050[ebp+8], dl
001bb a0 09 00 00 00 mov al, BYTE PTR ?DateCompiledBase@?2??MPInitialize@@9@9+9
001c0 88 45 ed mov BYTE PTR _DateCompiled$16050[ebp+9], al
001c3 8a 0d 0a 00 00
00 mov cl, BYTE PTR ?DateCompiledBase@?2??MPInitialize@@9@9+10
001c9 88 4d ee mov BYTE PTR _DateCompiled$16050[ebp+10], cl
; 141 : 0x0
; 142 : };
001cc c6 45 ef 00 mov BYTE PTR _DateCompiled$16050[ebp+11], 0
; 143 :
; 144 : if (' '==DateCompiled[0])
001d0 0f be 55 e4 movsx edx, BYTE PTR _DateCompiled$16050[ebp]
001d4 83 fa 20 cmp edx, 32 ; 00000020H
001d7 75 3d jne SHORT $L16051
; 145 : strcpy(DrvCompileInfo, DateCompiled+1);
001d9 8d 45 e5 lea eax, DWORD PTR _DateCompiled$16050[ebp+1]
001dc 89 45 e0 mov DWORD PTR tv79[ebp], eax
001df c7 45 dc 00 00
00 00 mov DWORD PTR tv80[ebp], OFFSET FLAT:_DrvCompileInfo
001e6 8b 4d dc mov ecx, DWORD PTR tv80[ebp]
001e9 89 4d d8 mov DWORD PTR tv77[ebp], ecx
$L16582:
001ec 8b 55 e0 mov edx, DWORD PTR tv79[ebp]
001ef 8a 02 mov al, BYTE PTR [edx]
001f1 88 45 d7 mov BYTE PTR tv81[ebp], al
001f4 8b 4d dc mov ecx, DWORD PTR tv80[ebp]
001f7 8a 55 d7 mov dl, BYTE PTR tv81[ebp]
001fa 88 11 mov BYTE PTR [ecx], dl
001fc 8b 45 e0 mov eax, DWORD PTR tv79[ebp]
001ff 83 c0 01 add eax, 1
00202 89 45 e0 mov DWORD PTR tv79[ebp], eax
00205 8b 4d dc mov ecx, DWORD PTR tv80[ebp]
00208 83 c1 01 add ecx, 1
0020b 89 4d dc mov DWORD PTR tv80[ebp], ecx
0020e 80 7d d7 00 cmp BYTE PTR tv81[ebp], 0
00212 75 d8 jne SHORT $L16582
; 146 : else
00214 eb 3b jmp SHORT $L16052
$L16051:
; 147 : strcpy(DrvCompileInfo, DateCompiled+0);
00216 8d 55 e4 lea edx, DWORD PTR _DateCompiled$16050[ebp]
00219 89 55 d0 mov DWORD PTR tv87[ebp], edx
0021c c7 45 cc 00 00
00 00 mov DWORD PTR tv88[ebp], OFFSET FLAT:_DrvCompileInfo
00223 8b 45 cc mov eax, DWORD PTR tv88[ebp]
00226 89 45 c8 mov DWORD PTR tv86[ebp], eax
$L16583:
00229 8b 4d d0 mov ecx, DWORD PTR tv87[ebp]
0022c 8a 11 mov dl, BYTE PTR [ecx]
0022e 88 55 c7 mov BYTE PTR tv89[ebp], dl
00231 8b 45 cc mov eax, DWORD PTR tv88[ebp]
00234 8a 4d c7 mov cl, BYTE PTR tv89[ebp]
00237 88 08 mov BYTE PTR [eax], cl
00239 8b 55 d0 mov edx, DWORD PTR tv87[ebp]
0023c 83 c2 01 add edx, 1
0023f 89 55 d0 mov DWORD PTR tv87[ebp], edx
00242 8b 45 cc mov eax, DWORD PTR tv88[ebp]
00245 83 c0 01 add eax, 1
00248 89 45 cc mov DWORD PTR tv88[ebp], eax
0024b 80 7d c7 00 cmp BYTE PTR tv89[ebp], 0
0024f 75 d8 jne SHORT $L16583
$L16052:
; 148 :
; 149 : strcat(DrvCompileInfo, TimeCompiledBase);
00251 c7 45 c0 00 00
00 00 mov DWORD PTR tv241[ebp], OFFSET FLAT:?TimeCompiledBase@?2??MPInitialize@@9@9
00258 8b 4d c0 mov ecx, DWORD PTR tv241[ebp]
0025b 89 4d bc mov DWORD PTR tv243[ebp], ecx
$L16586:
0025e 8b 55 c0 mov edx, DWORD PTR tv241[ebp]
00261 8a 02 mov al, BYTE PTR [edx]
00263 88 45 bb mov BYTE PTR tv246[ebp], al
00266 ff 45 c0 inc DWORD PTR tv241[ebp]
00269 80 7d bb 00 cmp BYTE PTR tv246[ebp], 0
0026d 75 ef jne SHORT $L16586
0026f 8b 4d c0 mov ecx, DWORD PTR tv241[ebp]
00272 2b 4d bc sub ecx, DWORD PTR tv243[ebp]
00275 8b 55 bc mov edx, DWORD PTR tv243[ebp]
00278 89 55 b4 mov DWORD PTR tv251[ebp], edx
0027b 89 4d b0 mov DWORD PTR tv252[ebp], ecx
0027e b8 00 00 00 00 mov eax, OFFSET FLAT:_DrvCompileInfo
00283 83 c0 ff add eax, -1
00286 89 45 ac mov DWORD PTR tv255[ebp], eax
$L16587:
00289 8b 4d ac mov ecx, DWORD PTR tv255[ebp]
0028c 8a 51 01 mov dl, BYTE PTR [ecx+1]
0028f 88 55 ab mov BYTE PTR tv258[ebp], dl
00292 ff 45 ac inc DWORD PTR tv255[ebp]
00295 80 7d ab 00 cmp BYTE PTR tv258[ebp], 0
00299 75 ee jne SHORT $L16587
0029b 8b 7d ac mov edi, DWORD PTR tv255[ebp]
0029e 8b 75 b4 mov esi, DWORD PTR tv251[ebp]
002a1 8b 45 b0 mov eax, DWORD PTR tv252[ebp]
002a4 8b c8 mov ecx, eax
002a6 c1 e9 02 shr ecx, 2
002a9 f3 a5 rep movsd
002ab 8b c8 mov ecx, eax
002ad 83 e1 03 and ecx, 3
002b0 f3 a4 rep movsb
; 150 :
; 151 : DBGPRINT((JADrvNm "." JADrvRtnName " v" JADrvRtnVer " (compiled %s)\n", DrvCompileInfo));
002b2 68 00 00 00 00 push OFFSET FLAT:$SG16053
002b7 e8 00 00 00 00 call _DbgPrint
002bc 83 c4 04 add esp, 4
002bf 68 00 00 00 00 push OFFSET FLAT:_DrvCompileInfo
002c4 68 00 00 00 00 push OFFSET FLAT:$SG16054
002c9 e8 00 00 00 00 call _DbgPrint
002ce 83 c4 08 add esp, 8
; 152 :
; 153 : // End information output. ja, 29.11.2003.
; 154 :
; 155 : //
; 156 : // Start off by retrieving our adapter context and storing
; 157 : // the Miniport handle in it.
; 158 : //
; 159 : pAdapt = NdisIMGetDeviceContext(MiniportAdapterHandle);
002d1 8b 4d 18 mov ecx, DWORD PTR _MiniportAdapterHandle$[ebp]
002d4 51 push ecx
002d5 ff 15 00 00 00
00 call DWORD PTR __imp__NdisIMGetDeviceContext@4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -