ReactOS  0.4.13-dev-247-g0f29b3f
netbios.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _NetBIOSAdapterImpl
 
struct  _NetBIOSTransport
 

Macros

#define NCB_CANCELLED(pncb)   *(const BOOL *)((pncb)->ncb_reserve)
 
#define TRANSPORT_NBT   "MNBT"
 

Typedefs

typedef struct _NetBIOSAdapterImpl NetBIOSAdapterImpl
 
typedef BOOL(* NetBIOSEnumAdaptersCallback) (UCHAR totalLANAs, UCHAR lanaIndex, ULONG transport, const NetBIOSAdapterImpl *data, void *closure)
 
typedef UCHAR(* NetBIOSEnum) (void)
 
typedef void(* NetBIOSCleanup) (void)
 
typedef UCHAR(* NetBIOSAstat) (void *adapter, PNCB ncb)
 
typedef UCHAR(* NetBIOSFindName) (void *adapter, PNCB ncb)
 
typedef UCHAR(* NetBIOSCall) (void *adapter, PNCB ncb, void **session)
 
typedef UCHAR(* NetBIOSSend) (void *adapter, void *session, PNCB ncb)
 
typedef UCHAR(* NetBIOSRecv) (void *adapter, void *session, PNCB ncb)
 
typedef UCHAR(* NetBIOSHangup) (void *adapter, void *session)
 
typedef void(* NetBIOSCleanupAdapter) (void *adapter)
 
typedef struct _NetBIOSTransport NetBIOSTransport
 

Functions

void NetBIOSInit (void) DECLSPEC_HIDDEN
 
void NetBIOSShutdown (void) DECLSPEC_HIDDEN
 
BOOL NetBIOSRegisterTransport (ULONG id, struct _NetBIOSTransport *transport) DECLSPEC_HIDDEN
 
BOOL NetBIOSRegisterAdapter (ULONG transport, DWORD ifIndex, void *adapter) DECLSPEC_HIDDEN
 
void NetBIOSEnableAdapter (UCHAR lana) DECLSPEC_HIDDEN
 
UCHAR NetBIOSNumAdapters (void) DECLSPEC_HIDDEN
 
void NetBIOSEnumAdapters (ULONG transport, NetBIOSEnumAdaptersCallback cb, void *closure) DECLSPEC_HIDDEN
 
void NetBIOSHangupSession (const NCB *ncb) DECLSPEC_HIDDEN
 
void NetBTInit (void) DECLSPEC_HIDDEN
 

Macro Definition Documentation

◆ NCB_CANCELLED

#define NCB_CANCELLED (   pncb)    *(const BOOL *)((pncb)->ncb_reserve)

Definition at line 129 of file netbios.h.

◆ TRANSPORT_NBT

#define TRANSPORT_NBT   "MNBT"

Definition at line 173 of file netbios.h.

Typedef Documentation

◆ NetBIOSAdapterImpl

◆ NetBIOSAstat

typedef UCHAR(* NetBIOSAstat) (void *adapter, PNCB ncb)

Definition at line 131 of file netbios.h.

◆ NetBIOSCall

typedef UCHAR(* NetBIOSCall) (void *adapter, PNCB ncb, void **session)

Definition at line 140 of file netbios.h.

◆ NetBIOSCleanup

typedef void(* NetBIOSCleanup) (void)

Definition at line 110 of file netbios.h.

◆ NetBIOSCleanupAdapter

typedef void(* NetBIOSCleanupAdapter) (void *adapter)

Definition at line 149 of file netbios.h.

◆ NetBIOSEnum

typedef UCHAR(* NetBIOSEnum) (void)

Functions a transport implementation must implement

Definition at line 105 of file netbios.h.

◆ NetBIOSEnumAdaptersCallback

typedef BOOL(* NetBIOSEnumAdaptersCallback) (UCHAR totalLANAs, UCHAR lanaIndex, ULONG transport, const NetBIOSAdapterImpl *data, void *closure)

Definition at line 70 of file netbios.h.

◆ NetBIOSFindName

typedef UCHAR(* NetBIOSFindName) (void *adapter, PNCB ncb)

Definition at line 132 of file netbios.h.

◆ NetBIOSHangup

typedef UCHAR(* NetBIOSHangup) (void *adapter, void *session)

Definition at line 143 of file netbios.h.

◆ NetBIOSRecv

typedef UCHAR(* NetBIOSRecv) (void *adapter, void *session, PNCB ncb)

Definition at line 142 of file netbios.h.

◆ NetBIOSSend

typedef UCHAR(* NetBIOSSend) (void *adapter, void *session, PNCB ncb)

Definition at line 141 of file netbios.h.

◆ NetBIOSTransport

Function Documentation

◆ NetBIOSEnableAdapter()

void NetBIOSEnableAdapter ( UCHAR  lana)

Definition at line 231 of file netbios.c.

232 {
233  TRACE(": %d\n", lana);
234  if (lana < gNBTable.tableSize)
235  {
237  if (gNBTable.table[lana].transport != 0)
238  gNBTable.table[lana].enabled = TRUE;
240  }
241 }
#define TRUE
Definition: types.h:120
NetBIOSAdapter * table
Definition: netbios.c:74
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
CRITICAL_SECTION cs
Definition: netbios.c:70
#define TRACE(s)
Definition: solgame.cpp:4
NetBIOSTransport * transport
Definition: netbios.c:61
static NetBIOSAdapterTable gNBTable
Definition: netbios.c:80
BOOL enabled
Definition: netbios.c:57
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)

Referenced by NetBTEnumCallback().

◆ NetBIOSEnumAdapters()

void NetBIOSEnumAdapters ( ULONG  transport,
NetBIOSEnumAdaptersCallback  cb,
void closure 
)

Definition at line 296 of file netbios.c.

298 {
299  TRACE("transport 0x%08x, callback %p, closure %p\n", transport, cb,
300  closure);
301  if (cb)
302  {
303  BOOL enumAll = memcmp(&transport, ALL_TRANSPORTS, sizeof(ULONG)) == 0;
304  UCHAR i, numLANAs = 0;
305 
307  if (!gNBTable.enumerating)
308  {
310  nbInternalEnum();
312  }
313  for (i = 0; i < gNBTable.tableSize; i++)
314  if (enumAll || gNBTable.table[i].transport_id == transport)
315  numLANAs++;
316  if (numLANAs > 0)
317  {
318  UCHAR lanaIndex = 0;
319 
320  for (i = 0; i < gNBTable.tableSize; i++)
321  if (gNBTable.table[i].transport_id != 0 &&
322  (enumAll || gNBTable.table[i].transport_id == transport))
323  cb(numLANAs, lanaIndex++, gNBTable.table[i].transport_id,
324  &gNBTable.table[i].impl, closure);
325  }
327  }
328 }
ULONG transport_id
Definition: netbios.c:60
#define TRUE
Definition: types.h:120
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
NetBIOSAdapter * table
Definition: netbios.c:74
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
CRITICAL_SECTION cs
Definition: netbios.c:70
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int BOOL
Definition: ntddk_ex.h:94
static void nbInternalEnum(void)
Definition: netbios.c:258
#define TRACE(s)
Definition: solgame.cpp:4
static NetBIOSAdapterTable gNBTable
Definition: netbios.c:80
static DWORD cb
Definition: integrity.c:41
unsigned char UCHAR
Definition: xmlstorage.h:181
NetBIOSAdapterImpl impl
Definition: netbios.c:62
unsigned int ULONG
Definition: retypes.h:1
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
#define ALL_TRANSPORTS
Definition: nb30.h:23

Referenced by NetBTEnum(), and NetWkstaTransportEnum().

◆ NetBIOSHangupSession()

void NetBIOSHangupSession ( const NCB ncb)

Definition at line 664 of file netbios.c.

665 {
666  NetBIOSAdapter *adapter;
667 
668  if (!ncb) return;
669 
670  adapter = nbGetAdapter(ncb->ncb_lana_num);
671  if (adapter)
672  {
673  if (ncb->ncb_lsn < adapter->sessionsLen &&
674  adapter->sessions[ncb->ncb_lsn].inUse)
675  nbHangup(adapter, ncb);
676  }
677 }
static NetBIOSAdapter * nbGetAdapter(UCHAR lana)
Definition: netbios.c:330
UCHAR ncb_lana_num
Definition: nb30.h:160
NetBIOSSession * sessions
Definition: netbios.c:66
DWORD sessionsLen
Definition: netbios.c:65
UCHAR ncb_lsn
Definition: nb30.h:151
static UCHAR nbHangup(NetBIOSAdapter *adapter, const NCB *ncb)
Definition: netbios.c:643

Referenced by NetBTRecv(), and NetBTSend().

◆ NetBIOSInit()

void NetBIOSInit ( void  )

Public functions

Definition at line 103 of file netbios.c.

104 {
105  memset(&gNBTable, 0, sizeof(gNBTable));
107  gNBTable.cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": NetBIOSAdapterTable.cs");
108 }
#define DWORD_PTR
Definition: treelist.c:76
CRITICAL_SECTION cs
Definition: netbios.c:70
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
Definition: synch.c:697
static NetBIOSAdapterTable gNBTable
Definition: netbios.c:80
PCRITICAL_SECTION_DEBUG DebugInfo
Definition: winbase.h:859
#define memset(x, y, z)
Definition: compat.h:39
DWORD_PTR Spare[8/sizeof(DWORD_PTR)]
Definition: winbase.h:852

Referenced by DllMain().

◆ NetBIOSNumAdapters()

UCHAR NetBIOSNumAdapters ( void  )

Definition at line 284 of file netbios.c.

285 {
286  UCHAR ret, i;
287 
288  if (!gNBTable.enumerated)
289  nbInternalEnum();
290  for (i = 0, ret = 0; i < gNBTable.tableSize; i++)
291  if (gNBTable.table[i].transport != 0)
292  ret++;
293  return ret;
294 }
NetBIOSAdapter * table
Definition: netbios.c:74
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static void nbInternalEnum(void)
Definition: netbios.c:258
NetBIOSTransport * transport
Definition: netbios.c:61
static NetBIOSAdapterTable gNBTable
Definition: netbios.c:80
unsigned char UCHAR
Definition: xmlstorage.h:181
int ret

Referenced by NetWkstaTransportEnum().

◆ NetBIOSRegisterAdapter()

BOOL NetBIOSRegisterAdapter ( ULONG  transport,
DWORD  ifIndex,
void adapter 
)

Definition at line 175 of file netbios.c.

176 {
177  BOOL ret;
178  UCHAR i;
179 
180  TRACE(": transport 0x%08x, ifIndex 0x%08x, data %p\n", transport, ifIndex,
181  data);
182  for (i = 0; i < gNumTransports && gTransports[i].id != transport; i++)
183  ;
184  if ((i < gNumTransports) && gTransports[i].id == transport)
185  {
186  NetBIOSTransport *transportPtr = &gTransports[i].transport;
187 
188  TRACE(": found transport %p for id 0x%08x\n", transportPtr, transport);
189 
191  ret = FALSE;
192  for (i = 0; i < gNBTable.tableSize &&
193  gNBTable.table[i].transport != 0; i++)
194  ;
195  if (i == gNBTable.tableSize && gNBTable.tableSize < MAX_LANA + 1)
196  {
197  UCHAR newSize;
198 
200  newSize = gNBTable.tableSize + ADAPTERS_INCR;
201  else
202  newSize = MAX_LANA + 1;
203  nbResizeAdapterTable(newSize);
204  }
205  if (i < gNBTable.tableSize && gNBTable.table[i].transport == 0)
206  {
207  TRACE(": registering as LANA %d\n", i);
208  gNBTable.table[i].transport_id = transport;
209  gNBTable.table[i].transport = transportPtr;
210  gNBTable.table[i].impl.lana = i;
211  gNBTable.table[i].impl.ifIndex = ifIndex;
215  gNBTable.table[i].cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": NetBIOSAdapterTable.NetBIOSAdapter.cs");
217  ret = TRUE;
218  }
220  }
221  else
222  ret = FALSE;
223  TRACE("returning %d\n", ret);
224  return ret;
225 }
static NetBIOSTransportTableEntry gTransports[1]
Definition: netbios.c:78
struct NBCmdQueue * NBCmdQueueCreate(HANDLE heap)
Definition: nbcmdqueue.c:53
ULONG transport_id
Definition: netbios.c:60
#define TRUE
Definition: types.h:120
#define DWORD_PTR
Definition: treelist.c:76
CRITICAL_SECTION cs
Definition: netbios.c:64
#define MAX_LANA
Definition: nb30.h:8
NetBIOSAdapter * table
Definition: netbios.c:74
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
CRITICAL_SECTION cs
Definition: netbios.c:70
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int BOOL
Definition: ntddk_ex.h:94
struct NBCmdQueue * cmdQueue
Definition: netbios.c:63
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
Definition: synch.c:697
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
NetBIOSTransport * transport
Definition: netbios.c:61
static NetBIOSAdapterTable gNBTable
Definition: netbios.c:80
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
PCRITICAL_SECTION_DEBUG DebugInfo
Definition: winbase.h:859
unsigned char UCHAR
Definition: xmlstorage.h:181
int ret
static UCHAR gNumTransports
Definition: netbios.c:79
NetBIOSTransport transport
Definition: netbios.c:35
NetBIOSAdapterImpl impl
Definition: netbios.c:62
BOOL enabled
Definition: netbios.c:57
static UCHAR nbResizeAdapterTable(UCHAR newSize)
Definition: netbios.c:82
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
#define ADAPTERS_INCR
Definition: netbios.c:29
DWORD_PTR Spare[8/sizeof(DWORD_PTR)]
Definition: winbase.h:852

Referenced by NetBTRegisterAdapter().

◆ NetBIOSRegisterTransport()

BOOL NetBIOSRegisterTransport ( ULONG  id,
struct _NetBIOSTransport transport 
)

Definition at line 131 of file netbios.c.

132 {
133  BOOL ret;
134 
135  TRACE(": transport 0x%08x, p %p\n", id, transport);
136  if (!transport)
137  ret = FALSE;
138  else if (gNumTransports >= sizeof(gTransports) / sizeof(gTransports[0]))
139  {
140  FIXME("Too many transports %d\n", gNumTransports + 1);
141  ret = FALSE;
142  }
143  else
144  {
145  UCHAR i;
146 
147  ret = FALSE;
148  for (i = 0; !ret && i < gNumTransports; i++)
149  {
150  if (gTransports[i].id == id)
151  {
152  WARN("Replacing NetBIOS transport ID %d\n", id);
153  memcpy(&gTransports[i].transport, transport,
154  sizeof(NetBIOSTransport));
155  ret = TRUE;
156  }
157  }
158  if (!ret)
159  {
161  memcpy(&gTransports[gNumTransports].transport, transport,
162  sizeof(NetBIOSTransport));
163  gNumTransports++;
164  ret = TRUE;
165  }
166  }
167  TRACE("returning %d\n", ret);
168  return ret;
169 }
static NetBIOSTransportTableEntry gTransports[1]
Definition: netbios.c:78
#define TRUE
Definition: types.h:120
#define WARN(fmt,...)
Definition: debug.h:111
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int BOOL
Definition: ntddk_ex.h:94
#define FIXME(fmt,...)
Definition: debug.h:110
#define TRACE(s)
Definition: solgame.cpp:4
unsigned char UCHAR
Definition: xmlstorage.h:181
int ret
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static UCHAR gNumTransports
Definition: netbios.c:79
GLenum GLuint id
Definition: glext.h:5579

Referenced by NetBTInit().

◆ NetBIOSShutdown()

void NetBIOSShutdown ( void  )

Definition at line 110 of file netbios.c.

111 {
112  UCHAR i;
113 
115  for (i = 0; i < gNBTable.tableSize; i++)
116  {
117  if (gNBTable.table[i].transport &&
121  }
122  for (i = 0; i < gNumTransports; i++)
123  if (gTransports[i].transport.cleanup)
126  gNBTable.cs.DebugInfo->Spare[0] = 0;
129 }
static NetBIOSTransportTableEntry gTransports[1]
Definition: netbios.c:78
NetBIOSAdapter * table
Definition: netbios.c:74
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
CRITICAL_SECTION cs
Definition: netbios.c:70
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
NetBIOSCleanupAdapter cleanupAdapter
Definition: netbios.h:160
#define GetProcessHeap()
Definition: compat.h:395
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
NetBIOSTransport * transport
Definition: netbios.c:61
static NetBIOSAdapterTable gNBTable
Definition: netbios.c:80
PCRITICAL_SECTION_DEBUG DebugInfo
Definition: winbase.h:859
unsigned char UCHAR
Definition: xmlstorage.h:181
static UCHAR gNumTransports
Definition: netbios.c:79
NetBIOSCleanup cleanup
Definition: netbios.h:161
NetBIOSTransport transport
Definition: netbios.c:35
NetBIOSAdapterImpl impl
Definition: netbios.c:62
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
#define HeapFree(x, y, z)
Definition: compat.h:394
DWORD_PTR Spare[8/sizeof(DWORD_PTR)]
Definition: winbase.h:852

Referenced by DllMain().

◆ NetBTInit()

void NetBTInit ( void  )

Definition at line 1432 of file nbt.c.

1433 {
1434  HKEY hKey;
1435  NetBIOSTransport transport;
1436  LONG ret;
1437 
1438  TRACE("\n");
1439 
1440  gEnableDNS = TRUE;
1445  gNumWINSServers = 0;
1446  memset(gWINSServers, 0, sizeof(gWINSServers));
1447  gScopeID[0] = '\0';
1449 
1450  /* Try to open the Win9x NetBT configuration key */
1452  /* If that fails, try the WinNT NetBT configuration key */
1453  if (ret != ERROR_SUCCESS)
1455  &hKey);
1456  if (ret == ERROR_SUCCESS)
1457  {
1458  DWORD dword, size;
1459 
1460  size = sizeof(dword);
1461  if (RegQueryValueExW(hKey, EnableDNSW, NULL, NULL,
1462  (LPBYTE)&dword, &size) == ERROR_SUCCESS)
1463  gEnableDNS = dword;
1464  size = sizeof(dword);
1466  (LPBYTE)&dword, &size) == ERROR_SUCCESS && dword >= MIN_QUERIES
1467  && dword <= MAX_QUERIES)
1468  gBCastQueries = dword;
1469  size = sizeof(dword);
1471  (LPBYTE)&dword, &size) == ERROR_SUCCESS && dword >= MIN_QUERY_TIMEOUT)
1472  gBCastQueryTimeout = dword;
1473  size = sizeof(dword);
1475  (LPBYTE)&dword, &size) == ERROR_SUCCESS && dword >= MIN_QUERIES
1476  && dword <= MAX_QUERIES)
1477  gWINSQueries = dword;
1478  size = sizeof(dword);
1480  (LPBYTE)&dword, &size) == ERROR_SUCCESS && dword >= MIN_QUERY_TIMEOUT)
1481  gWINSQueryTimeout = dword;
1482  size = sizeof(gScopeID) - 1;
1483  if (RegQueryValueExW(hKey, ScopeIDW, NULL, NULL, (LPBYTE)gScopeID + 1, &size)
1484  == ERROR_SUCCESS)
1485  {
1486  /* convert into L2-encoded version, suitable for use by
1487  NetBTNameEncode */
1488  char *ptr, *lenPtr;
1489 
1490  for (ptr = gScopeID + 1, lenPtr = gScopeID; ptr - gScopeID < sizeof(gScopeID) && *ptr; ++ptr)
1491  {
1492  if (*ptr == '.')
1493  {
1494  lenPtr = ptr;
1495  *lenPtr = 0;
1496  }
1497  else
1498  {
1499  ++*lenPtr;
1500  }
1501  }
1502  }
1504  (LPBYTE)&dword, &size) == ERROR_SUCCESS && dword >= MIN_CACHE_TIMEOUT)
1505  gCacheTimeout = dword;
1506  RegCloseKey(hKey);
1507  }
1508  /* WINE-specific NetBT registry settings. Because our adapter naming is
1509  * different than MS', we can't do per-adapter WINS configuration in the
1510  * same place. Just do a global WINS configuration instead.
1511  */
1512  /* @@ Wine registry key: HKCU\Software\Wine\Network */
1514  {
1515  static const char *nsValueNames[] = { "WinsServer", "BackupWinsServer" };
1516  char nsString[16];
1517  DWORD size, ndx;
1518 
1519  for (ndx = 0; ndx < sizeof(nsValueNames) / sizeof(nsValueNames[0]);
1520  ndx++)
1521  {
1522  size = sizeof(nsString) / sizeof(char);
1523  if (RegQueryValueExA(hKey, nsValueNames[ndx], NULL, NULL,
1524  (LPBYTE)nsString, &size) == ERROR_SUCCESS)
1525  {
1526  unsigned long addr = inet_addr(nsString);
1527 
1530  }
1531  }
1532  RegCloseKey(hKey);
1533  }
1534 
1535  transport.enumerate = NetBTEnum;
1536  transport.astat = NetBTAstat;
1537  transport.findName = NetBTFindName;
1538  transport.call = NetBTCall;
1539  transport.send = NetBTSend;
1540  transport.recv = NetBTRecv;
1541  transport.hangup = NetBTHangup;
1542  transport.cleanupAdapter = NetBTCleanupAdapter;
1543  transport.cleanup = NetBTCleanup;
1544  memcpy(&gTransportID, TRANSPORT_NBT, sizeof(ULONG));
1546 }
static DWORD gWINSQueryTimeout
Definition: nbt.c:146
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4041
#define BCAST_QUERIES
Definition: nbt.c:90
#define BCAST_QUERY_TIMEOUT
Definition: nbt.c:91
NetBIOSFindName findName
Definition: netbios.h:155
static DWORD gBCastQueryTimeout
Definition: nbt.c:144
#define TRUE
Definition: types.h:120
NetBIOSAstat astat
Definition: netbios.h:154
#define inet_addr(cp)
Definition: inet.h:98
#define ERROR_SUCCESS
Definition: deptool.c:10
#define KEY_READ
Definition: nt_native.h:1023
#define HKEY_CURRENT_USER
Definition: winreg.h:11
#define WINS_QUERIES
Definition: nbt.c:92
static UCHAR NetBTFindName(void *adapt, PNCB ncb)
Definition: nbt.c:847
#define MAX_QUERIES
Definition: nbt.c:87
#define MIN_QUERY_TIMEOUT
Definition: nbt.c:88
NetBIOSHangup hangup
Definition: netbios.h:159
static const WCHAR VxD_MSTCPW[]
Definition: nbt.c:1409
static DWORD gWINSQueries
Definition: nbt.c:145
static UCHAR NetBTSend(void *adapt, void *sess, PNCB ncb)
Definition: nbt.c:1065
static const WCHAR NetBT_ParametersW[]
Definition: nbt.c:1412
static UCHAR NetBTHangup(void *adapt, void *sess)
Definition: nbt.c:1222
#define WINS_QUERY_TIMEOUT
Definition: nbt.c:93
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:52
#define CACHE_TIMEOUT
Definition: nbt.c:96
long LONG
Definition: pedump.c:60
static const WCHAR CacheTimeoutW[]
Definition: nbt.c:1426
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3311
static PVOID ptr
Definition: dispmode.c:27
NetBIOSSend send
Definition: netbios.h:157
smooth NULL
Definition: ftsmooth.c:416
NetBIOSCleanupAdapter cleanupAdapter
Definition: netbios.h:160
NetBIOSRecv recv
Definition: netbios.h:158
static UCHAR NetBTAstat(void *adapt, PNCB ncb)
Definition: nbt.c:802
NetBIOSCall call
Definition: netbios.h:156
static int gNumWINSServers
Definition: nbt.c:148
#define TRACE(s)
Definition: solgame.cpp:4
static DWORD gBCastQueries
Definition: nbt.c:143
GLsizeiptr size
Definition: glext.h:5919
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4134
static UCHAR NetBTEnum(void)
Definition: nbt.c:1337
unsigned long DWORD
Definition: ntddk_ex.h:95
static const WCHAR NameSrvQueryCountW[]
Definition: nbt.c:1421
static ULONG gTransportID
Definition: nbt.c:141
#define MIN_CACHE_TIMEOUT
Definition: nbt.c:95
#define MIN_QUERIES
Definition: nbt.c:86
static const WCHAR EnableDNSW[]
Definition: nbt.c:1416
int ret
#define INADDR_NONE
Definition: nbt.c:80
static char gScopeID[MAX_SCOPE_ID_LEN]
Definition: nbt.c:149
GLenum const GLvoid * addr
Definition: glext.h:9621
BOOL NetBIOSRegisterTransport(ULONG id, NetBIOSTransport *transport)
Definition: netbios.c:131
static const WCHAR BcastNameQueryCountW[]
Definition: nbt.c:1417
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static const WCHAR NameSrvQueryTimeoutW[]
Definition: nbt.c:1423
#define TRANSPORT_NBT
Definition: netbios.h:173
NetBIOSCleanup cleanup
Definition: netbios.h:161
static DWORD gCacheTimeout
Definition: nbt.c:150
static UCHAR NetBTCall(void *adapt, PNCB ncb, void **sess)
Definition: nbt.c:964
static UCHAR NetBTRecv(void *adapt, void *sess, PNCB ncb)
Definition: nbt.c:1114
static const WCHAR Config_NetworkW[]
Definition: nbt.c:1428
static BOOL gEnableDNS
Definition: nbt.c:142
NetBIOSEnum enumerate
Definition: netbios.h:153
static void NetBTCleanupAdapter(void *adapt)
Definition: nbt.c:1243
#define MAX_WINS_SERVERS
Definition: nbt.c:94
unsigned int ULONG
Definition: retypes.h:1
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3381
static const WCHAR ScopeIDW[]
Definition: nbt.c:1425
static const WCHAR BcastNameQueryTimeoutW[]
Definition: nbt.c:1419
#define memset(x, y, z)
Definition: compat.h:39
static DWORD gWINSServers[MAX_WINS_SERVERS]
Definition: nbt.c:147
static void NetBTCleanup(void)
Definition: nbt.c:1256
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by DllMain().