2012-04-11 8 views
6

देता है मैं एक डिवाइस पर साझाकरण प्रकार के साथ साझा करने में प्रोग्रामेटिक रूप से सक्षम करने की कोशिश कर रहा हूं जो विंडोज 7 मशीन पर ज्ञात GUID से मेल खाता है।INetSharingConfiguration-> EnableSharing (ICSSHARINGTYPE_PUBLIC) 0x80040201

एपीआई पर: 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 है जो हल करता है: "कोई ईवेंट किसी भी ग्राहक को आमंत्रित करने में असमर्थ था।" जो उपरोक्त सूचीबद्ध किसी भी त्रुटि कोड से मेल नहीं खाता प्रतीत होता है।

यदि मैं मैन्युअल रूप से नेटवर्क एडेप्टर गुणों में जाता हूं और साझाकरण टैब पर जाता हूं और साझाकरण सक्षम करता हूं और निजी नेटवर्क का चयन करता हूं और ठीक क्लिक करता हूं, तो साझाकरण ठीक से सक्षम हो जाता है।

इसके बाद मेरा उपरोक्त कोड बिना किसी समस्या के चलाता है।

मैं मैन्युअल रूप से किसी अन्य एडाप्टर (सार्वजनिक) और एक अलग निजी नेटवर्क पर साझा करना भी सेट कर सकता हूं और फिर अपना कोड चला सकता हूं और देख सकता हूं कि मेरा कोड सार्वजनिक और निजी नेटवर्क को जो मैं चाहता हूं उसे अपडेट करता है। नेटवर्क प्रॉपर्टी फलक के माध्यम से साझा करने में सक्षम होने के बाद यह केवल काम करने लगता है।

समस्या को दो अलग-अलग कंप्यूटर चल रहे विंडोज 7 64 बिट पर डुप्लिकेट किया गया है। ऐसा लगता है कि नेटवर्क एडाप्टर ड्राइवर को सिस्टम से अनइंस्टॉल करने के बाद ऐसा होता है जब साझाकरण सक्षम होता है और फिर नेटवर्क एडेप्टर ड्राइवर को दोबारा स्थापित करता है।

मैंने स्थापना रद्द करने के दौरान अनइंस्टॉलर अक्षम साझा करने का प्रयास किया है लेकिन ऐसा लगता है कि यह हिट या मिस है।

विंडोज नेटवर्क साझाकरण संपत्ति फलक दृश्यों के पीछे कुछ कर रहा है कि यह एपीआई कॉल मैन्युअल रूप से एडाप्टर कार्यों पर साझा करने के बाद से नहीं करता है।

क्या किसी के पास कोई विचार है कि यह क्या हो सकता है?

+0

त्रुटि सी में एक ही बात कर सकते हैं कोड के लिए आपको मिला संदेश/अर्थ सही होने की संभावना नहीं है। [FACILITY_ITF में कोड] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms679751%28v=vs.85%29.aspx) कहता है, यह कोड स्रोत-विशिष्ट है। शायद आप 'GetErrorInfo' API का उपयोग कर सकते हैं और सही विवरण प्राप्त कर सकते हैं जो समस्या के स्रोत पर प्रकाश डालता है। –

+0

मैं भी इसमें भाग गया। मुझे आश्चर्य है कि इसके साथ कुछ करने के लिए क्या है? 'सार्वजनिक रूप से साझा कनेक्शन में स्वचालित रूप से इंटरनेट कनेक्शन फ़ायरवॉल सक्षम होता है।' शायद इसे संपत्ति फलक से सक्षम करने से फ़ायरवॉल को इस तरह से कॉन्फ़िगर किया जाता है कि EnableSharing के साथ काम करने में सक्षम है? –

+0

मुझे यकीन नहीं है कि यह हॉटफिक्स .NET 2.0 के लिए मदद कर सकता है, लेकिन यह कोशिश करने योग्य है: http://support.microsoft.com/kb/926997/en-us – utapyngo

उत्तर

1

मैं खिड़कियों 8.1 पर एक ही मुद्दा था और पढ़ने के बाद यह तय करने समाप्त हो गया: https://support.microsoft.com/kb/828807

मेरे कोड सी #, लेकिन मैं वाकई ++

// Disable ICS on any network iterfaces which may no longer be present in the system 
public void Disable_ICS_WMI() 
{ 
    ManagementScope scope = new ManagementScope("\\\\.\\ROOT\\Microsoft\\HomeNet"); 

    //create object query 
    ObjectQuery query = new ObjectQuery("SELECT * FROM HNet_ConnectionProperties "); 

    //create object searcher 
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); 
    //get a collection of WMI objects 
    ManagementObjectCollection queryCollection = searcher.Get(); 

    //enumerate the collection. 
    foreach (ManagementObject m in queryCollection) 
    { 
    // access properties of the WMI object 
    Console.WriteLine("Connection : {0}", m["Connection"]); 
    try 
    { 
     PropertyDataCollection properties = m.Properties; 
     foreach(PropertyData prop in properties) 
     { 
     if (prop.Name == "IsIcsPrivate" && ((Boolean) prop.Value) == true) 
     { 
      prop.Value = false; 
      m.Put(); 
     } 
     }   
    } catch (Exception e) 
    { 
     Console.WriteLine("ex " + e.Message); 
     continue; 
    } 
    } 
} 
+0

लिंक के लिए धन्यवाद। समस्या चली जाती है। हालांकि यह ध्यान दिया जाना चाहिए कि इस विधि को आमंत्रित करने के बाद भी आपको 'अक्षम करने योग्य' कॉल करने की आवश्यकता है। – Mygod

संबंधित मुद्दे