Aracılığıyla paylaş


Windows Search'te Filtre İşleyicileri Oluşturmak için En İyi Yöntemler

Microsoft Windows Search, öğelerin içeriğini tam metin dizinine eklemek üzere ayıklamak için filtreleri kullanır. İçeriği ayıklamak için filtre işleyicileri ve dosyaların özelliklerini ayıklamak için özellik işleyicileri yazarak Yeni veya özel dosya türlerini dizine almak için Windows Search'ün kapsamını genişletebilirsiniz. Filtreler, dosya adı uzantıları, MIME türleri veya sınıf tanımlayıcıları (CLSID) ile belirtildiği gibi dosya türleriyle ilişkilendirilir. Bir filtre birden çok dosya türünü işleyebilir ancak her tür yalnızca bir filtreyle çalışır.

Bu konu aşağıdaki bölümleri içerir:

Yerel Kod

Windows 7 ve sonraki sürümlerde, yönetilen kodda yazılan filtreler açıkça engellenir. Birden çok eklentinin çalıştığı işlemle ilgili olası CLR sürüm oluşturma sorunları nedeniyle filtreler yerel kodda yazılmalıdır.

Aşağıda, Windows Search ile kullanılmak üzere güvenli uygulamalar yazmaya yönelik uygulamalar yer alır.

Sorgu uygulamaları için:

  • Arama istemcileri yazarken, kullanıcıya en düşük ayrıcalığı sağlayan bir güvenlik bağlamında çalışan API'yi seçmeniz gerekir. Örneğin, ASP sayfaları kullanıcı işlemi olarak çalışan IXSSO sorgu nesnesini kullanabilir.

IFilters ve Dil Kaynakları için :

  • Mevcut bir filtre kaydının yerine dosya türü için yeni bir filtre işleyicisi yükleniyorsa, yeni filtre işleyicisi kaldırılırsa yükleyicinin geçerli kaydı kaydetmesi ve geri yüklemesi gerekir. Filtreleri zincirleme mekanizması yoktur. Bu nedenle, yeni filtre işleyicisi eski filtrenin gerekli işlevlerini çoğaltmakla sorumludur.
  • Windows Search için IFilters, sözcük ayırıcılar ve kök ayırıcılar Yerel Güvenlik bağlamında çalışır. Arabellekleri yönetmek ve doğru bir şekilde istiflemek için yazılmalıdır. Tüm dize kopyalarında arabellek taşmalarına karşı korunmak için açık kontroller olmalıdır. Her zaman arabelleğin ayrılmış boyutunu doğrulamalı ve verilerin boyutunu arabellek boyutuna göre test etmelisiniz. Arabellek taşması, arabellek boyutu kısıtlamalarının uygulanmadığı koddan yararlanmak için kullanılan yaygın bir tekniktir.
  • IFilter, sözcük ayırıcı ve kök ayırıcı bileşenleri hiçbir zaman bir işlemi ve tüm iş parçacıklarını sonlandıran ExitProcess İşlevi işlevini veya benzer API'yi çağırmamalıdır.
  • DllMain giriş noktasında kaynakları ayırmayın veya serbest bırakın. Bu, düşük kaynak stres testleri sırasında hatalara neden olabilir.
  • Tüm nesneleri iş parçacığı açısından güvenli olacak şekilde kodlayın. Windows Search, bir sözcük ayırıcı veya kök bulucunun herhangi bir örneğini bir seferde bir iş parçacığında çağırır, ancak birden çok iş parçacığında aynı anda birden çok örneği çağırabilir.
  • Geçici dosyalar oluşturmaktan veya kayıt defterine yazmaktan kaçının.
  • Microsoft Visual C++ derleyicisini kullanıyorsanız uygulamanızı /GS seçeneğini kullanarak derlediğinizden emin olun. arabellek taşmalarını algılamak için /GS seçeneği kullanılır. /GS seçeneği, derlenen koda güvenlik denetimleri yerleştirir. Daha fazla bilgi için Platform SDK'nın Visual C++ Derleyici Seçenekleri bölümündeki DllGetClassObject Fonksiyonu /, GS (Arabellek Güvenlik Denetimi)'e bakın.

Ek Kaynaklar

Filtre İşleyicileri Geliştirme

Windows Search'ta Filtre Yöneticileri Hakkında

Filtre İşleyicisinden özellik döndürme

Windows ile Birlikte Gelen Filtre İşleyicileri

Windows Search'de Filtre İşleyicilerini Uygulama

Filtre İşleyicilerini Kaydetme

Test Filtre İşleyicileri