Windows 7 マシンの既知の GUID と一致するデバイスで、共有タイプ public との共有をプログラムで有効にしようとしています。
API: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365944(v=vs.85).aspx
エラーのリストには、E_ABORT、E_FAIL、E_INVALIDARG、E_NOINTERFACE、E_NOTIMPL、E_OUTOFMEMORY、E_POINTER、および E_UNEXPECTED が表示されます。
返されるエラー コードは 0x80040201 で、「イベントはサブスクライバーを呼び出すことができませんでした」に解決されます。上記のエラー コードのいずれとも一致しないようです。
手動でネットワーク アダプタのプロパティに移動し、共有タブに移動して共有を有効にし、プライベート ネットワークを選択して [OK] をクリックすると、共有が適切に有効になります。
この後、上記のコードは問題なく実行されます。
別のアダプター (パブリック) と別のプライベート ネットワークで手動で共有を設定し、コードを実行して、コードがパブリック ネットワークとプライベート ネットワークを希望どおりに更新することを確認することもできます。これは、最初にネットワーク プロパティ ペインで共有を手動で有効にした後にのみ機能するようです。
この問題は、Windows 7 64 ビットを実行している 2 台の異なるコンピューターで再現されています。共有がシステムで有効になっているときにシステムからネットワーク アダプター ドライバーをアンインストールし、ネットワーク アダプター ドライバーを再インストールした後に発生するようです。
アンインストーラーでアンインストール中に共有を無効にしようとしましたが、これはヒットまたはミスのようです。
Windows ネットワーク共有のプロパティ ペインは、この API 呼び出しでは実行されないことをバックグラウンドで実行しています。これは、アダプタでの共有の手動設定が毎回機能するためです。
誰かがそれが何であるかについて何か考えがありますか?