0

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 は、アルファベット順にソートされた共有オブジェクトを放棄します。このプロセスを並列化する方法を想像できません。何か案は?

4

1 に答える 1