से दिया जाता है KEXT में फ़ाइल के लिए, मैं सुन रहा या गुंजाइश श्रोता फ़ाइल। कुछ (बहुत कम) फ़ाइलों के लिए, मुझे अपने सिस्टम डिमन पर फ़ाइल पथ भेजने की आवश्यकता है जो कुछ प्रोसेसिंग करता है (यह डिमन में होता है) और परिणाम को वापस KEXT पर वापस कर देता है। फ़ाइल क्लोज कॉल को तब तक अवरुद्ध करने की आवश्यकता है जब तक कि मुझे डेमन से प्रतिक्रिया न मिल जाए। परिणाम के आधार पर मुझे करीबी कॉल में कुछ ऑपरेशन की आवश्यकता है और बंद कॉल सफलतापूर्वक वापस करनी है। फोरम पर केएक्सटी संचार से संबंधित विषय पर बहुत सी चर्चा है। लेकिन वे निर्णायक नहीं हैं और बहुत पुराने (वर्ष 2002 के आसपास) दिखाई देते हैं। इस आवश्यकता को FtlSendMessage(...)
Win32 API द्वारा नियंत्रित किया जा सकता है। मैं मैकसबसे अच्छा तरीका करने के लिए और परिणाम जब तक ब्लॉक vnode के माध्यम से करीब Daemon
यहाँ है कि मैं क्या देखा और मेरी समझ संक्षेप में प्रस्तुत करना चाहते हैं:
- मच संदेश: इस का उपयोग करते हुए प्रदान करता है द्विदिश संचार की बहुत अच्छी तरह से और बंदरगाहों जवाब queuing mechansim के साथ। हालांकि, मच संदेश API (उदा।
mach_msg
,mach_port_allocate
,bootstrap_look_up
) केपीआई नहीं दिखते हैं। मच एपीआईmach_msg_send_from_kernel
का उपयोग किया जा सकता है, लेकिन वह अकेले द्विपक्षीय संचार में मदद नहीं करेगा। क्या मेरी समझ सही है? - IOUserClient: ऐसा लगता है कि उपयोगकर्ता स्थान से KEXT तक संचार करने के साथ और फिर केएक्सटी से कुछ कॉलबैक होने के साथ ऐसा लगता है। मुझे केएक्सटी से डेमन तक संचार शुरू करने का कोई तरीका नहीं मिला और फिर डेमॉन से परिणाम की प्रतीक्षा करें। क्या मैं कुछ भूल रहा हूँ?
- सॉकेट: यह आखिरी विकल्प हो सकता है के बाद से मैं KEXT से Daemon करने के लिए पूरे द्विदिश संचार चैनल को लागू करने के लिए होगा।
ioct
एल/sysctl
: मैं उनके बारे में ज्यादा पता नहीं है। मैं क्या पढ़ा है से, अपनी नहीं अनुशंसित विकल्प विशेष रूप से द्विदिश संचार के लिए- RPC-मिग: फिर मैं उनके बारे में ज्यादा पता नहीं है। मैंने जो देखा है उससे जटिल दिखता है। सुनिश्चित नहीं है कि यह अनुशंसित तरीका है।
- KUNCUserNotification: यह सिर्फ KEXT से उपयोगकर्ता के लिए अधिसूचना प्रदान प्रतीत होता है। यह मेरी आवश्यकता को पूरा नहीं करता है।
समर्थित मंच (10.5 बाद) है। तो आवश्यकता को देखते हुए, क्या कोई इस विषय पर कुछ संकेतक सुझा सकता है और प्रदान कर सकता है?
अग्रिम धन्यवाद।
क्या आपको सॉकेट के साथ इसे कार्यान्वित करने का एक उदाहरण मिला? आपके इनपुट के लिए – gbdavid