25#define NONAMELESSUNION
78 lpCache->bNsIsLocal =
TRUE;
96 TRACE(
"%p, %p, %p\n", lpcNSAddrHdr, lpcMsg, lpNSInfo );
102 if( lpCacheNode !=
NULL )
104 TRACE(
"Duplicate session entry for %s removed - updated version kept\n",
106 cbDeleteNSNodeFromHeap( lpCacheNode );
112 if( lpCacheNode ==
NULL )
114 ERR(
"no memory for NS node\n" );
120 CopyMemory( lpCacheNode->lpNSAddrHdr, lpcNSAddrHdr, dwHdrSize );
124 if( lpCacheNode->data ==
NULL )
126 ERR(
"no memory for SESSIONDESC2\n" );
131 *lpCacheNode->data = lpcMsg->
sd;
136 lpCacheNode->data->u1.lpszSessionNameA,
len,
NULL,
NULL );
143 lpCache->
present = lpCacheNode;
155 FIXME(
":quick stub\n" );
165 if ( lpCache->first.lpQHFirst )
166 return lpCache->first.lpQHFirst->lpNSAddrHdr;
171 return lpCache->bNsIsLocal ? lpCache->lpLocalAddrHdr
172 : lpCache->lpRemoteAddrHdr;
190 CopyMemory( lpCache->lpLocalAddrHdr, lpHdr, dwHdrSize );
207 FIXME(
": not all data fields are correct\n" );
211 data.dwMessageSize );
247 if( lpCache ==
NULL )
249 ERR(
": invalidate nonexistent cache\n" );
258 lpCache->bNsIsLocal =
FALSE;
267 *lplpNSInfo = lpCache;
269 if( lpCache ==
NULL )
277 lpCache->bNsIsLocal =
FALSE;
307 lpSessionDesc = lpCache->
present->data;
312 return lpSessionDesc;
344 if( (dwPresentTime - (
DPQ_FIRST(lpCache->first)->dwTime)) < dwPrunePeriod )
352 cbDeleteNSNodeFromHeap( lpFirstData );
362 DWORD dwVariableSize;
367 FIXME(
": few fixed + need to check request for response, might need UNICODE input ability.\n" );
372 dwVariableSize = dwVariableLen *
sizeof(
WCHAR );
375 sizeof( *rmsg ) + dwVariableSize;
390 (
LPWSTR)(rmsg+1), dwVariableLen );
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
DWORD WINAPI timeGetTime(void)
#define DPENUMSESSIONS_RETURNSTATUS
struct tagDPMSG_ENUMSESSIONSREQUEST * LPDPMSG_ENUMSESSIONSREQUEST
#define DPMSGCMD_ENUMSESSIONSREQUEST
struct tagDPMSG_ENUMSESSIONSREPLY * LPDPMSG_ENUMSESSIONSREPLY
#define DPMSGCMD_ENUMSESSIONSREPLY
#define DPMSG_WAIT_60_SECS
#define DPMSGMAGIC_DPLAYMSG
#define DPQ_INSERT(a, b, c)
#define DPQ_DECL_COMPARECB(name, type)
#define DPQ_REMOVE_ENTRY_CB(head, elm, field, compare_cb, fieldToCompare, rc)
#define DPQ_DELETEQ(head, field, type, df)
#define DPQ_IS_EMPTY(head)
#define DPQ_REMOVE(head, elm, field)
#define DPQ_DECL_DELETECB(name, type)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
void NS_AddRemoteComputerAsNameServer(LPCVOID lpcNSAddrHdr, DWORD dwHdrSize, LPCDPMSG_ENUMSESSIONSREPLY lpcMsg, LPVOID lpNSInfo)
void NS_SetLocalComputerAsNameServer(LPCDPSESSIONDESC2 lpsd, LPVOID lpNSInfo)
BOOL NS_InitializeSessionCache(LPVOID *lplpNSInfo)
void NS_InvalidateSessionCache(LPVOID lpNSInfo)
LPVOID NS_GetNSAddr(LPVOID lpNSInfo)
HRESULT NS_SendSessionRequestBroadcast(LPCGUID lpcGuid, DWORD dwFlags, const SPINITDATA *lpSpData)
LPDPSESSIONDESC2 NS_WalkSessions(LPVOID lpNSInfo)
void NS_ReplyToEnumSessionsRequest(const void *lpcMsg, void **lplpReplyData, DWORD *lpdwReplySize, IDirectPlayImpl *lpDP)
void NS_ResetSessionEnumeration(LPVOID lpNSInfo)
void NS_PruneSessionCache(LPVOID lpNSInfo)
struct NSCache * lpNSCache
struct NSCacheData * lpNSCacheData
void NS_SetLocalAddr(LPVOID lpNSInfo, LPCVOID lpHdr, DWORD dwHdrSize)
void NS_DeleteSessionCache(LPVOID lpNSInfo)
DWORD NS_GetNsMagic(LPVOID lpNSInfo)
#define IsEqualGUID(rguid1, rguid2)
static unsigned __int64 next
DPMSG_SENDENVELOPE envelope
DPMSG_SENDENVELOPE envelope
LPDPSP_ENUMSESSIONS EnumSessions
LPDPSESSIONDESC2 lpSessionDesc
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags