Hello, Juan! > Hi Konstantin, > > - providerTable->table[index].dwEnumScopes > & dwScope) > + providerTable->table[index].dwEnumScopes > & WNNC_ENUM_GLOBAL) > > This change looks correct, but it should be changed in the next block as > well: > > ret = providerTable->table[index].openEnum( > dwScope, dwType, dwUsage, lpNet, &handle); > > It also looks incorrect in _enumerateGlobalPassthroughW: > ret = providerTable->table[enumerator->providerIndex]. > openEnum(enumerator->dwScope, enumerator->dwType, > enumerator->dwUsage, enumerator->lpNet, > &enumerator->handle); > > In fact, all of these usages of dwScope look to confuse the two > meanings. (D'oh.) > --Juan
Well, I have looked all code in mpr/wnet.c The following condition in _globalEnumeratorAdvance() looks incorrect: for (; enumerator->providerIndex < providerTable->numProviders && !(enumerator->dwScope & providerTable->table [enumerator->providerIndex].dwEnumScopes); enumerator->providerIndex++) Other conditions and parameters look correctly. For example, function NPOpenEnum() expects a dwScope, containing RESOURCE_CONNECTED, RESOURCE_GLOBALNET or RESOURCE_CONTEXT. Correct for me if I am not right. -- Best regards, Konstantin Kondratyuk.