पर साझा मेमोरी एक्सेस अनुमतियां मैंने एक विंडोज़ एप्लीकेशन विकसित किया है जो साझा मेमोरी का उपयोग करता है --- यह है --- इंटरप्रोसेस संचार के लिए मेमोरी मैप की गई फाइलें। मेरे पास एक विंडोज़ सेवा है जो कुछ प्रसंस्करण करता है और समय-समय पर स्मृति मैप किए गए फ़ाइल में डेटा लिखता है। मेरे पास एक अलग विंडोज़ एप्लिकेशन है जो मेमोरी मैप की गई फाइल से पढ़ता है और जानकारी प्रदर्शित करता है। एप्लिकेशन विंडोज एक्सपी, एक्सपी प्रो और सर्वर 2003 पर अपेक्षित काम करता है, लेकिन Vista पर नहीं।विंडोज
मैं देख सकता हूं कि मेमोरी मैप किए गए फ़ाइल में लिखा गया डेटा विंडोज सेवा द्वारा सही ढंग से हो रहा है क्योंकि मैं एक टेक्स्ट एडिटर के साथ फ़ाइल खोल सकता हूं और संग्रहीत संदेशों को देख सकता हूं, लेकिन "उपभोक्ता" एप्लिकेशन पढ़ नहीं सकता फ़ाइल से यहां ध्यान देने योग्य एक दिलचस्प बात यह है कि अगर मैं उपभोक्ता अनुप्रयोग बंद करता हूं और इसे पुनरारंभ करता हूं, तो यह उन संदेशों को खपत करता है जो पहले मेमोरी मैप किए गए फ़ाइल में लिखे गए थे।
इसके अलावा, एक और अजीब चीज यह है कि जब मैं रिमोट डेस्कटॉप का उपयोग कर विंडोज होस्ट से कनेक्ट करता हूं और दूरस्थ डेस्कटॉप के माध्यम से उपभोक्ता अनुप्रयोग का उपयोग/उपयोग करता हूं तो मुझे वही व्यवहार मिलता है। हालांकि, अगर मैं रिमोट डेस्कटॉप का आह्वान करता हूं और निम्न होस्ट के साथ लक्ष्य होस्ट के कंसोल सत्र से कनेक्ट करता हूं: mstsc -v:servername /F -console
, सब कुछ पूरी तरह से काम करता है।
इसलिए मुझे लगता है कि समस्या अनुमतियों से संबंधित है। क्या कोई इस पर टिप्पणी कर सकता है?
संपादित करें:
एसीएल कि मैं स्मृति मैप की गई फ़ाइल और Mutex वस्तुओं कि sychronize पहुँच इस प्रकार है बनाने के लिए उपयोग कर रहा हूँ:
TCHAR * szSD = TEXT("D:")
TEXT("(A;;RPWPCCDCLCSWRCWDWOGAFA;;;S-1-1-0)")
TEXT("(A;;GA;;;BG)")
TEXT("(A;;GA;;;AN)")
TEXT("(A;;GA;;;AU)")
TEXT("(A;;GA;;;LS)")
TEXT("(A;;GA;;;RD)")
TEXT("(A;;GA;;;WD)")
TEXT("(A;;GA;;;BA)");
मैं इस मुद्दे का हिस्सा हो सकता लगता है ।
साझा दस्तावेज़ आईपीसी संबंधित फाइलों के लिए एक बेहद असुरक्षित स्थान है - ऐसा मत करें। –