WNet 関数を使用して、Windows ネットワーク共有オブジェクトを一覧表示するプログラムを作成しています。エクスプローラーにはもっと多くのオブジェクトが表示されますが、何らかの理由で WNetEnumResource 関数がローカル共有のみを取得することに気付きました。何が原因でしょうか?コードは次のとおりです。
dwResult = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,
RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER, lpnr, &hEnum);
................
dwResultEnum = WNetEnumResource(hEnum, &cEntries, lpnrLocal, &cbBuffer);
それは私が得たものです:
Microsoft Terminal Services network
Microsoft Windows Network network
WORKGROUP domain
\\MOSKKM server
\\MOSKKM\HP LaserJet 3055 PCL5 share
\\MOSKKM\share share
\\MOSKKM\soft share
\\MOSKKM\tunnel share
Web Client Network network
私のシステムは Win7 で、管理者アカウントを使用しており、ウイルス対策やファイアウォールは実行されていません。また、同じマシンでホストされているブリッジされた VirtualBox VM でも正しく動作します (ただし、長時間)。何が間違っている可能性がありますか?WNet関数を使用しないで、この問題を解決する他の方法があるのでしょうか?
WNetEnumResource は、アルファベット順にソートされた共有オブジェクトを放棄します。このプロセスを並列化する方法を想像できません。何か案は?