;*****************************************************************; ;** Copyright(c) Microsoft Corp., 1988-1993 **; ;*****************************************************************; ;:ts=8 TITLE WFWASM.ASM - WFW 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 vnbtd.inc include vnetbios.inc .LIST IFNDEF CHICAGO EXTRN _GetDhcpOption:NEAR EXTRN NCB_Handler:NEAR VxD_ICODE_SEG public _NBTSectionName _NBTSectionName db 'NBT',0 ; Section in system.ini parameters are stored public _DNSSectionName _DNSSectionName db 'DNS',0 ; DNS Section in system.ini ;**************************************************************************** ;** _GetProfileInt ; ; Reads a parameter from our system.ini file (INIT TIME ONLY!) ; ; Entry: See ReadParamParams ; ; Exit: Eax contains specified value or defaulted value ; ReadParamParams struc dd ? ; Return Address dd ? ; Saved edi dd ? ; Saved esi dd ? ; ParametersHandle (unused) ValueName dd ? ; Pointer to value name string DefaultValue dd ? ; Value to use if not in .ini file MinimumValue dd ? ; Specified value must be >= MinimumValue ReadParamParams ends BeginProc _GetProfileInt push edi push esi ; ; Get the value from the system.ini file (if can't be found then eax ; will contain the default value) ; mov eax, [esp].DefaultValue mov esi, OFFSET32 _NBTSectionName mov edi, [esp].ValueName VMMCall Get_Profile_Decimal_Int jnc GPI_Found push eax ; Default value push edi ; Value name call _GetDhcpOption ; Returns DHCP value or default add esp, 8 GPI_Found: ; ; Does the value meet our standards? ; cmp eax, [esp].MinimumValue ; Unsigned comparison ja RP10 mov eax, [esp].MinimumValue RP10: pop esi pop edi ret EndProc _GetProfileInt ;**************************************************************************** ;** _GetProfileHex ; ; Reads a hex parameter from our system.ini file (INIT TIME ONLY!) ; ; Entry: See ReadParamParams ; ; Exit: Eax contains specified value or defaulted value ; ReadParamParams struc dd ? ; Return Address dd ? ; Saved edi dd ? ; Saved esi dd ? ; ParametersHandle (unused) ValueName dd ? ; Pointer to value name string DefaultValue dd ? ; Value to use if not in .ini file MinimumValue dd ? ; Specified value must be >= MinimumValue ReadParamParams ends BeginProc _GetProfileHex push edi push esi ; ; Get the value from the system.ini file (if can't be found then eax ; will contain the default value) ; mov eax, [esp].DefaultValue mov esi, OFFSET32 _NBTSectionName mov edi, [esp].ValueName VMMCall Get_Profile_Hex_Int jnc GPH_Found push eax ; Default value push edi ; Value name call _GetDhcpOption ; Returns DHCP value or default add esp, 8 GPH_Found: ; ; Does the value meet our standards? ; cmp eax, [esp].MinimumValue ; Unsigned comparison ja RHP10 mov eax, [esp].MinimumValue RHP10: pop esi pop edi ret EndProc _GetProfileHex ;**************************************************************************** ;** _GetProfileString ; ; Reads a string from our system.ini file (INIT TIME ONLY!) ; ; Entry: See GetProfileStrParams structure ; ; Exit: Eax contains the found value or NULL if not found ; ; History: ; 30-May-94 Koti ; this function modified to accept name of the section ; to look at as a parameter. Getting DNS server ipaddrs ; from the DNS section in system.ini demanded this change ; GetProfileStrParams struc dd ? ; Return Address dd ? ; saved edx dd ? ; Saved edi dd ? ; Saved esi gps_ValueName dd ? ; Pointer to value name string gps_DefaultValue dd ? ; Value to use if not in .ini file gps_SectionName dd ? ; Name of the section to look at (almost always NBT) GetProfileStrParams ends BeginProc _GetProfileString push edx push edi push esi ; ; Get the value from the system.ini file (if can't be found then eax ; will contain the default value) ; mov edx, [esp].gps_DefaultValue mov esi, [esp].gps_SectionName mov edi, [esp].gps_ValueName VMMCall Get_Profile_String jc GetProf10 mov eax, edx ; Success jmp short GetProf20 GetProf10: mov eax, 0 ; Couldn't find the string GetProf20: pop esi pop edi pop edx ret EndProc _GetProfileString ;**************************************************************************** ;** _RegisterLana ; ; Registers the requested lana with the VNetbios driver. ; ; Entry: [ESP+4] - Lana number to register ; ; Exit: EAX will be TRUE if successful, FALSE if not ; ; Uses: ; BeginProc _RegisterLana mov eax, [esp+4] ; Get the request lana to register push ebx push edx mov ebx, 1 ; Take over RM lana mov edx, NCB_Handler VxDcall VNETBIOS_Register ; Carry set on failure jnc RegLana10 mov eax, 0 ; Failed jmp short RegLana20 RegLana10: mov eax, 1 ; Success RegLana20: pop edx pop ebx ret EndProc _RegisterLana ;**************************************************************************** ;** _DhcpSetInfo - Sets DHCP information ; ; Stub callout to the Dhcp driver ; ; Entry: [ESP+4] - Info type ; [ESP+8] - IP Address of interest ; [ESP+12]- Pointer to buffer ; [ESP+16]- Pointer to buffer size ; ; INIT TIME ONLY! ; BeginProc _DhcpSetInfo VxdCall VDHCP_Get_Version jnc DSI_Installed mov eax, 26 ; DHCP not installed, return invalid param ret DSI_Installed: push ebp mov ebp,esp mov eax, [ebp+20] ; Buff size push eax mov eax, [ebp+16] ; Buff push eax mov eax, [ebp+12] ; IP Address push eax mov eax, [ebp+8] ; Info type push eax VxdCall VDHCP_Set_Info add esp, 16 pop ebp ret EndProc _DhcpSetInfo VxD_ICODE_ENDS ENDIF ;!CHICAGO END