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.
Modern performans veri sağlayıcıları, sayaç verilerini tanımlamak için bir bildirim kullanır ve sağlayıcı bağlamındaki verileri yönetmek için performans sayacı sağlayıcı API'lerini kullanır. Bildirim ve performans sayacı sağlayıcı API'leri kullanılarak uygulanan sağlayıcılar genellikle V2 sağlayıcıları olarak adlandırılır. Windows, Windows Vista veya sonraki sürümlerde kullanıcı modu V2 sağlayıcılarını ve Windows 7 veya sonraki sürümlerde çekirdek modu V2 sağlayıcılarını destekler.
Bu sayfada kullanıcı modu V2 sağlayıcıları açıklanmaktadır. Çekirdek modu V2 sağlayıcıları hakkında bilgi için bkz. Çekirdek Modu Performans İzleme.
V2 sağlayıcıları çalışma zamanında aşağıdaki gibi çalışır:
- Sağlayıcı işlemi, PerfStartProvider ve PerfSetCounterSetInfo çağrısı yaparak kendisini Windows Performans Sayacı sistemine kaydeder. Sağlayıcı isteğe bağlı olarak, tüketici istekleri hakkında bilgilendirilecek bir geri çağırma işlevi sağlar.
- Sağlayıcı işlemi, PerfCreateInstance ve PerfDeleteInstance kullanarak örnekleri uygun şekilde ekler veya kaldırır. Sayaç değerleri değiştiğinde sağlayıcı, PerfSet*** API'lerini kullanarak onları güncelleştirir.
- Tüketici bir karşı kümeden veri isteğinde bulunur. Sistem, çağıranın verileri toplama izinlerine sahip olduğunu doğrular. Ardından sistem, isteği işlemek için sağlayıcı işleminde çalışan bir işçi iş parçacığı kullanır ve uygunsa, sağlayıcının geri çağırma işlevini çağırır. Çalışan iş parçacığı toplanan verileri sistem tarafından yönetilen bir arabelleğe kopyalar ve ardından sistem verileri tüketiciye döndürür.
Sağlayıcı oluşturma adımları
Sağlayıcınızın sağlayacağı sayaç verilerini tanımlayan bir bildirim yazın. Bildirimi yazma hakkında ayrıntılı bilgi için bkz. Performans Sayaçları Şeması.
Sağlayıcınıza eklediğiniz şablon kodunu oluşturmak için CTRPP kullanın. Şablon kodu sayaç kümelerini tanımlayan yapıları, CounterInitializeve CounterCleanupişlevlerini ve kaynak dizeleriniiçerir.
Sağlayıcınız CounterInitialize ve CounterCleanup işlevlerini çağırmalıdır. CounterInitialize, sağlayıcıyı kaydetmek için PerfStartProvider işlevini çağırır ve ayrıca sayaç kümesini başlatmak için PerfSetCounterSetInfo işlevini çağırır. CounterCleanup, sağlayıcının kaydını kaldırmak için PerfStopProvider işlevini çağırır.
Önceki adımda yer alan şablon kodunu projenize ekleyin ve sağlayıcınızı tamamlayın.
Sağlayıcıyı tamamlamak için, sağladığınız her sayaç kümesi örneği için PerfCreateInstance işlevini çağırmanız gerekir.
Sayaç değerlerini ayarlamak için aşağıdaki işlevlerden birini çağırın:
PerfSetCounterRefValue kullanmanın avantajı, sayaç değerini ayarlamak veya güncelleştirmek için işlev çağrısı yapmanız gerekmemesidir; yerel sayaç değişkeninizi (başvuru noktalarının bulunduğu değişken) güncelleştirmeniz ve Performans Sayaçlarının işaretçiyi kullanarak sayaç değerine erişmesi yeterlidir.
PerfSetCounterRefValuekullanmıyorsanız, sayaç değerini artırmak veya düşürmek için aşağıdaki işlevleri kullanabilirsiniz:
- PerfDecrementULongCounterValue
- PerfDecrementULongLongCounterValue
- PerfIncrementULongCounterValue
- PerfIncrementULongLongCounterValue
Sağlayıcı çıkmadan önce, oluşturduğu her sayaç kümesi örneği için PerfDeleteInstance işlevini çağırmalıdır.
Bildiriminizdeki sağlayıcısı öğesinde geri çağırma özniteliğini belirttiyseniz veya CTRPPçağırırken -NotificationCallback bağımsız değişkenini kullandıysanız, ControlCallback geri çağırma fonksiyonunu uygulamanız gerekir. geri çağırma işlevini CounterInitialize işlevi aracılığıylageçirirsiniz.
CTRPPçağırırken -MemoryRoutines kullandıysanız, AllocateMemory ve FreeMemory geri çağırma işlevlerini uygulamanız gerekir. Geri çağırma işlevlerini CounterInitializegeçersiniz.
Sağlayıcınızı yüklerken, yerelleştirilmiş kaynak dizelerini ve kaynak kimliklerini içeren ikili dosyanın adını kayıt defterine yazmak için LodCtr aracını kullanın. LodCtr'ı kullanma hakkında ayrıntılı bilgi için bkz. Performans Sayaçları Şeması.
Sağlayıcınızı kaldırırken, sağlayıcınızın bilgilerini kayıt defterinden kaldırmak için UnlodCtr aracını kullanın.