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.