Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konu başlığı altında, Evrensel Windows Platformu (UWP) uygulamaları ve Win32 uygulamaları arasında adlandırılmış nesnelerin nasıl paylaşılıp paylaştırılamları açıklanmaktadır.
Paketlenmiş uygulamalarda adlandırılmış nesneler
Adlandırılmış nesneler , işlemlerin nesne tanıtıcılarını paylaşması için kolay bir yol sağlar. Bir işlem adlandırılmış bir nesne oluşturduktan sonra, diğer işlemler, uygun işlevi çağırarak nesnenin tanıtıcısını açmak için adını kullanabilir. Adlandırılmış nesneler genellikle
Varsayılan olarak, paketlenmiş uygulamalar yalnızca oluşturdukları adlandırılmış nesnelere erişebilir. Adlandırılmış nesneleri paketlenmiş uygulamalarla paylaşmak için, nesneler oluşturulduğunda izinlerin ayarlanması ve nesneler açıldığında adların nitelenmesi gerekir.
Adlandırılmış nesneler oluşturma
Adlandırılmış nesneler, karşılık gelen bir Create API'siyle oluşturulur:
- Etkinlik Oluştur
- Dosya Eşleme Oluştur
- Muteks Oluştur
- CreateSemaphore
- CreateWaitableTimer
Bu API'lerin tümü, çağıranın nesneye erişebilecek işlemleri denetlemek için LPSECURITY_ATTRIBUTES belirtmesini sağlayan bir parametreyi paylaşır. Adlandırılmış nesneleri paketlenmiş uygulamalarla paylaşmak için, adlandırılmış nesneler oluşturulduğunda ACL'ler içinde izin verilmelidir.
Güvenlik tanımlayıcıları (SID), ACL'ler içindeki kimlikleri temsil eder. Paketlenmiş her uygulamanın, paket ailesi adına göre kendi SID'leri vardır. Paketlenmiş bir uygulamanın SID'sini oluşturmak için paket ailesi ismini deriveAppContainerSidFromAppContainerName
Uyarı
Paket ailesi adı geliştirme sırasında Visual Studio'daki paket bildirimi düzenleyicisi, Microsoft Store aracılığıyla yayımlanan uygulamalar için İş Ortağı Merkezi veya zaten yüklü olan uygulamalar için Get-AppxPackage PowerShell komutu aracılığıyla bulunabilir.
Bu örnek , adlandırılmış bir nesne ACL için gereken temel deseni gösterir. Adlandırılmış nesneleri paketlenmiş uygulamalarla paylaşmak için her uygulama için bir EXPLICIT_ACCESS yapısı oluşturun:
grfAccessMode = GRANT_ACCESS- Nesneye ve hedef kullanım amacına göre uygun izinleri alın
grfAccessPermissions =. grfInheritance = NO_INHERITANCETrustee.TrusteeForm = TRUSTEE_IS_SIDTrustee.TrusteeType = TRUSTEE_IS_USER-
Trustee.ptstrName =DeriveAppContainerSidFromAppContainerName'den alınan SID
LPSECURITY_ATTRIBUTES çağrılarında Create parametresini paketlenmiş uygulamalar için EXPLICIT_ACCESS kurallarıyla doldurarak, adlandırılmış nesneyi açmak için bu uygulamalara erişim vererek.
Uyarı
Win32 uygulamaları,açar
Adlandırılmış nesneleri açma
Adlandırılmış nesneler, ilgili Open API'sine bir ad geçirilerek açılır:
- Açık Etkinlik
- OpenFileMapping
- OpenMutex Dosyası
- Açık Semafor
- OpenWaitableTimer
Paketlenmiş bir uygulama tarafından oluşturulan adlandırılmış nesneler, uygulamanın ad alanı içinde oluşturulur ve adlandırılmış nesne yolu olarak da bilinir. Paketlenmiş bir uygulama tarafından oluşturulan adlandırılmış nesneleri açarken, nesne adları oluşturma uygulamasının adlandırılmış nesne yolu ile ön eklenmelidir.
getAppContainerNamedObjectPath
Uyarı
Paket ailesi adı geliştirme sırasında Visual Studio'daki paket bildirimi düzenleyicisi, Microsoft Store aracılığıyla yayımlanan uygulamalar için İş Ortağı Merkezi veya zaten yüklü olan uygulamalar için Get-AppxPackage PowerShell komutu aracılığıyla bulunabilir.
Paketlenmiş bir uygulama tarafından oluşturulan adlandırılmış nesneleri açarken <PATH>\<NAME>biçimini kullanın:
-
<PATH>yerine uygulamanın adlandırılmış nesne yolunu ekleyin. -
<NAME>değerini nesne adıyla değiştirin.
Uyarı
Nesne adlarına <PATH> ön eki eklemek, yalnızca nesne bir paketlenmiş uygulama tarafından oluşturulduğunda gereklidir. Win32 uygulamaları tarafından oluşturulan adlandırılmış nesnelerin nitelenmiş olması gerekmez, ancak nesneler
Açıklamalar
Paketlenmiş uygulamalarda adlandırılmış nesneler, güvenliği korumak ve askıya alma ve sonlandırma gibi uygulama yaşam döngüsü olayları için destek sağlamak için varsayılan olarak yalıtılır. Adlandırılmış nesnelerin uygulamalar arasında paylaşılması sıkı bağlama ve sürüm oluşturma kısıtlamalarına neden olur ve her uygulamanın başkalarının yaşam döngüsüne dayanıklı olmasını gerektirir. Bu nedenlerden dolayı, aynı yayımcıdaki uygulamalar arasında yalnızca adlandırılmış nesneleri paylaşmanızı öneririz.