Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

122 lines
2.9 KiB

;*****************************************************************;
;** Copyright(c) Microsoft Corp., 1988-1993 **;
;*****************************************************************;
;:ts=8
TITLE CHICASM.ASM - Chicago (PNP) Specific vnbt routines
.XLIST
;*** VNBT -- NetBios over TCP/IP VxD
;
;
.386p
include vmm.inc
include dosmgr.inc
include netvxd.inc
include vdhcp.inc
include debug.inc
include vtdi.inc
include vip.inc
include vnbt.inc
include vnetbios.inc
.LIST
IFDEF CHICAGO
EXTRN _GetDhcpOption:NEAR
EXTRN NCB_Handler:NEAR
VxD_CODE_SEG
;****************************************************************************
;** _RegisterLana2
;
; Registers the requested lana with the VNetbios driver.
;
; Entry: [ESP+4] - PNP Device context
; [ESP+8] - Lana number to register
;
; Exit: EAX will return the lana registered or 0xff if the lana couldn't
; be registered.
;
; Uses:
;
BeginProc _RegisterLana2
VxDcall VNETBIOS_Get_Version
jnc Do_Register
mov eax, 0ffh ; yukk! vnetbios is not loaded!
jmp Register_Fail
Do_Register:
mov ecx, [esp+4] ; PNP device context
mov eax, [esp+8] ; Get the request lana to register
push ebx
push edx
mov ebx, 1 ; Take over RM lana
mov edx, NCB_Handler
VxDcall VNETBIOS_Register2 ; Carry set on failure
jnc RegLana10
mov eax, 0ffh ; Failed
RegLana10:
pop edx
pop ebx
Register_Fail:
ret
EndProc _RegisterLana2
;****************************************************************************
;** _DeregisterLana
;
; Deregisters the requested lana with the VNetbios driver.
;
; Entry: [ESP+4] - Lana number to deregister
;
; Uses:
;
BeginProc _DeregisterLana
mov eax, [esp+4] ; Lana to deregister
VxDcall VNETBIOS_Deregister
ret
EndProc _DeregisterLana
;****************************************************************************
;** _IPRegisterAddrChangeHandler
;
; Registers a handler with IP to handle binding and unbinding
;
; Entry: [ESP+4] - Pointer to handler
; [ESP+8] - TRUE to set the handler, FALSE to remove the handler
;
; Exit: EAX will contain TRUE if successful, FALSE other wise
;
; Uses:
;
BeginProc _IPRegisterAddrChangeHandler
mov eax, [esp+8] ; bool
push eax
mov eax, [esp+8] ; Handler (yes, it should be esp+8)
push eax
VxDcall VIP_Register_Addr_Change; Carry set on failure
add esp, 8
ret
EndProc _IPRegisterAddrChangeHandler
VxD_CODE_ENDS
ENDIF ;CHICAGO
END