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.
CTRPP aracı, V2 sağlayıcınız için bildirimi ayrıştıran ve doğrulayan bir ön işlemcidir. Araç, sağlayıcınızın tüketicilerinin ihtiyaç duyduğu dizelerle kaynaklar oluşturur .rc ve sayaç verilerinizi sağlamak için kullandığınız kodu içeren bir .h üst bilgi oluşturur. Sağlayıcınızın oluşturulması sırasında CTRPP aracını çalıştırmanız gerekir. Sağlayıcınızı geliştirirken bu kodu kendiniz oluşturmaya çalışmak yerine, oluşturulan kodu bir başlangıç noktası olarak kullanmalısınız.
ctrpp -o codeFile -rc rcFile [-legacy] [-MemoryRoutines] [-NotificationCallback] [-prefix prefix] [-ch symFile] [-backcompat] inputFile
Tartışmalar
| Seçenek | Açıklama |
|---|---|
| inputFile |
Gerekli: Sayaçlarınızı tanımlayan (XML bildirimi) dosyasının adını .man belirtir. |
| -okod Dosyası |
Gerekli: CTRPP tarafından oluşturulacak kod dosyasının adını .h belirtir. Bu dosya, sağlayıcınızı başlatmayı ve başlatmayı kaldırmayı basitleştiren C/C++ satır içi yardımcı işlevlerini içerir. |
| -rcrc Dosyası |
Gerekli: CTRPP tarafından oluşturulacak (kaynak dosyasının) adını .rc belirtir. Bu dosya, sağlayıcının dize tablosunu içerecektir. |
| -chsymFile | CTRPP tarafından oluşturulacak isteğe bağlı .h sembol dosyasının adını belirtir. Bu dosya, sağlayıcıdaki her karşı kümenin adları ve GUID'leri için C/C++ simgeleri içerir. |
| -öneköneki | Oluşturulan üstbilgi dosyasında tanımlanan değişkenler ve işlevler için kullanılacak öneki belirtir. |
| -BildirimGeri Arama |
CounterInitialize işlevinin varsayılan imzasını, ControlCallback, AllocateMemory ve FreeMemory geri çağrı işlevlerinin adını belirtmek için parametreler içerecek şekilde değiştirir. Bu bağımsız değişken, özniteliği sağlayıcı öğesine dahil callback etmekle aynı etkiye sahiptir. |
| -migrateoutputFile | ve .rc dosyaları oluşturmak .h yerine, inputFile bildirimini en son sürüme yükseltir ve outputFile'a kaydeder. Bu anahtar diğer anahtarlarla kullanılamaz. Kullanım: CTRPP -migrate NewFile.man OldFile.man |
| -Geri Uyumluluk |
Kaldırıl -mış: Windows 7'de çekirdek modu sağlayıcıları için destek eklendi. Varsayılan olarak, çekirdek modu sağlayıcıları için CTRPP tarafından oluşturulan kod, Windows'un önceki sürümleriyle uyumlu olmayacaktır (eksik Pcw*** API'ler nedeniyle sürücü yüklenemez). Windows'un önceki sürümleriyle uyumluluğu etkinleştirmek için ayarlayın -BackCompat . Sürücü, gerekli API'leri dinamik olarak yükler ve API'ler mevcut değilse oluşturulan kod sağlayıcıyı sessizce devre dışı bırakır. |
| -Hafıza Rutinleri |
Kaldırıl -mış: Anahtarla -Legacy birlikte kullanıldığında, oluşturulan kodda bellek rutinleri için şablonlar içerir. Aksi takdirde, bu bağımsız değişken anahtarla -NotificationCallback aynı etkiye sahiptir. |
| -Miras |
Kaldırıl -mış: , , *.rcve *_r.h Windows Vista kod şablonlarını kullanarak dosyalar *.coluşturur *.h(CounterInitialize ve CounterCleanup yerine PerfAutoInitialize ve PerfAutoCleanup oluşturur). Bu anahtar -MemoryRoutines ve -NotificationCallback ile kullanılabilir, ancak diğer anahtarlarla kullanılamaz. Bu anahtarla -o veya -rc anahtarlarını kullanmayın. Oluşturulan dosyalar, bildirimin adına göre adlandırılır ve bildirimi içeren dizine yazılır. Kullanım: CTRPP -legacy OldFile.man |
Açıklamalar
CTRPP aracı bir .h kod dosyası, bir .rc kaynak dosyası oluşturur ve isteğe bağlı olarak bir .h sembol dosyası oluşturur.
Oluşturulan kaynak dosyasını kullanma
CTRPP aracı, sağlayıcının karşı kümelerinin tüketicileri tarafından ihtiyaç duyulan yerelleştirilebilir dizeleri içeren bir .rc kaynak dosyası oluşturur.
Önemli
Bu dosyadaki kaynakların sağlayıcı ikili dosyanıza dahil edilmesi ve sağlayıcı ikili dosyasının tam yolunun sağlayıcınızın bildiriminin yüklenmesi sırasında kaydedilmesi gerekir. Kaynakları bulamayan ve yükleyemeyen tüketiciler, sağlayıcınızın karşı kümelerini kullanamaz.
Dize kaynakları aşağıdaki gibi işlenmelidir:
- Geliştirici, sağlayıcının özniteliğini, sağlayıcının dize kaynaklarını içerecek ve sağlayıcı bileşeninin bir parçası olarak yüklenecek bir sağlayıcı ikili dosyasının (.DLL, .SYS veya .EXE) adına ayarlamak
applicationIdentityiçin sağlayıcı bildirim (.man) dosyasını düzenler. - CTRPP aracı, sağlayıcı bildirimini okur ve bir
.rcdosya oluşturur. -
RC (kaynak derleyicisi) aracı, ikili kaynakları içeren bir
.resdosya oluşturmak için CTRPP tarafından oluşturulan.rcdosyadan verileri derler. Bu, CTRPP tarafından oluşturulan.rcdosyayı doğrudan derleyerek VEYA bir yönerge aracılığıyla CTRPP tarafından oluşturulan.rcdosyayı içeren başka bir.rc#includedosyayı derleyerek yapılabilir. - Bağlayıcı, RC tarafından oluşturulan
.resdosyadaki verileri sağlayıcı ikili dosyasına katıştırır. - Yükleme sırasında, sağlayıcı ikili dosyası kullanıcının sistemine kopyalanır ve sağlayıcı bildirimi lodctr aracı kullanılarak kaydedilir. lodctr aracı, sağlayıcı bildiriminin özniteliğini tam yola dönüştürür
applicationIdentityve kayıt defterindeki sağlayıcı ikili dosyasının tam yolunu kaydeder.- Sağlayıcı ikili dosyası bildirimle aynı dizindeyse şunu kullanın:
lodctr.exe /m:"C:\full\manifest\path\manifest.man". Lodctr, tam yolu oluşturmak için belirtilen bildirim yolunu bildiriminapplicationIdentityözniteliğiyle birleştirir. - Aksi takdirde
lodctr.exe /m:"C:\full\manifest\path\manifest.man" "c:\full\binary\path"kullanın. Lodctr, tam yolu oluşturmak için belirtilen ikili yolu bildiriminapplicationIdentityözniteliğiyle birleştirir. - Tanılama amacıyla, kayıt defteri anahtarının
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\_V2Providers\{<ProviderGuid>}değerini kontrolApplicationIdentityederek kaydedilen tam yolu inceleyebilirsiniz. - İkili dosya yerelleştirme için MUI kullanıyorsa, MUI dosyasını ikili dosyayla birlikte kopyaladığınızdan emin olun.
- Sağlayıcı ikili dosyası bildirimle aynı dizindeyse şunu kullanın:
- Sayaç toplama sırasında, tüketici, sağlayıcı ikili dosyasının kaynaklarından gerekli dizeleri bulmak ve yüklemek için sağlayıcı ikili dosyasının kaydedilen tam yolunu kullanır.
Oluşturulan kod dosyasını bir kullanıcı modu sağlayıcısında kullanma
CTRPP aracı bir .h C/C++ kod dosyası oluşturacaktır. Sağlayıcı bildiriminin providerType özniteliği olarak userModeayarlanırsa, oluşturulan kod dosyası, kullanıcı modu sağlayıcısını kodlamaya yardımcı olan aşağıdaki tanımları içerir:
- n CounterInitialize öneki adlı sağlayıcı başlatma işlevi.
- CounterCleanup öneki adlı bir sağlayıcı temizleme işlevi.
-
CounterInitialize öneki işlevi tarafından açılan sağlayıcı tanıtıcısını depolayan bir genel sağlayıcı değişkeni. Değişkenin adı, bildirimdeki öğenin özniteliğinin
providerdeğeridirsymbol. Bu değişken, sağlayıcınızın verilerini denetlemek için ,PerfDeleteInstanceve diğer API'lerePerfCreateInstanceyapılan çağrılarda kullanılmalıdır. - Her sayaç kümesi için, karşı küme GUID'sine sahip genel bir karşı kümeGUID değişkeni. Değişkenin adı, öğenin özniteliğinin
symboldeğericounterSetartı "GUID" sonekidir, ör.MyCounterSetGUIDBu değişken, sağlayıcınızın verilerini denetlemek için ,PerfDeleteInstanceve diğer API'lerePerfCreateInstanceyapılan çağrılarda kullanılmalıdır. - Her sayaç için, sayacın
iddeğerini içeren bir sayaç makrosu. Makronun adı, öğenin özniteliğinincountersymboldeğeridir. Bu makro, sağlayıcınızın verilerini ayarlamak için ,PerfSetULongLongCounterValueve diğer API'lerePerfSetCounterRefValueyapılan çağrılarda kullanılmalıdır.
İşlev adlarında önek , komut satırı parametresinin değerini ifade eder -prefix .
-prefix Parametre kullanılmazsa, fonksiyonlar ve CounterCleanupolarak adlandırılırCounterInitialize.
Oluşturulan kod dosyasını bir çekirdek modu sağlayıcısında kullanma
CTRPP aracı bir .h C/C++ kod dosyası oluşturacaktır. Sağlayıcı bildiriminin providerType özniteliği olarak kernelModeayarlanırsa, oluşturulan kod dosyası, çekirdek modu sağlayıcısının karşı kümelerini kodlamaya yardımcı olan aşağıdaki tanımları içerir:
- RegisterCountersetöneki adlı bir karşı küme başlatma işlevi. Bu işlev bir RegInfo yapısını doldurur ve ardından PcwRegister'ı çağırır ve sonuçta elde edilen karşı küme kayıt tanıtıcısını genel Karşı Küme değişkenine yerleştirir.
- UnregisterCountersetöneki adlı bir karşı küme temizleme işlevi. Bu işlev, genel Counterset değişkenindeki karşı küme kayıt tanıtıcısında PcwUnregister'ı çağırır.
- prefixCreateCounterset adlı bir örnek oluşturma işlevi. Bu işlev, bir dizi PcwData yapısını doldurur ve ardından genel Counterset değişkenindeki counterset kayıt tanıtıcısını kullanarak PcwCreateInstance'ı çağırır.
- CloseCountersetöneki adlı bir örnek temizleme işlevi. Bu işlev PcwCloseInstance'ı çağırır.
- Karşı küme geri çağırma işlevinden kullanılacak KarşıKüme Ekleönekiadlı bir örnek raporlama işlevi. Bu işlev, bir dizi PcwData yapısını doldurur ve ardından PcwAddInstance'ı çağırır.
- Windows SDK 20H1 ve üzeri: Gelişmiş senaryolarda kullanılmak üzere prefixInitRegistrationInformationCounterset adlı bir RegInfo başlatma işlevi. Bu işlev bir RegInfo yapısını doldurur. Bu işlev, oluşturulan RegisterCountersetönekinin gereksinimlerinizi karşılamadığı durumlarda, örneğin RegInfo yapısındaki değerleri özelleştirmek istediğinizde veya döndürülen tanıtıcıyı başka bir değişkende saklamak istediğinizde kullanılabilir.
İşlev adlarında önek , komut satırı parametresinin değerini ifade eder -prefix .
-prefix Parametre kullanılmazsa, işlevlerin öneki olmaz.
Uyarı
Oluşturulan Karşı Küme Ekleönekiişlevi, bir karşı küme geri aramanız olduğunda kullanılır. Oluşturulan Karşı Küme Oluşturöneki ve Karşı Kümeyi Kapatöneki işlevleri, bir karşı küme geri aramanız olmadığında kullanılır.
Oluşturulan sembol dosyasını kullanma
Komut satırında -ch parametresi belirtilirse, CTRPP aracı bir .h sembol dosyası oluşturur. Bu dosya, sağlayıcıdaki her sayaç kümesinin adları ve GUID'leri için C/C++ simgelerini içerir. Semboller, PerfLib V2 Tüketici işlevleri kullanılarak bu karşı kümedeki verileri kullanmak için sabit kodlanmış programlar yazarken kullanılabilir.
Gereksinimler
| Gereksinim | Değer |
|---|---|
| Desteklenen en düşük düzeydeki istemci | Windows Vista [yalnızca masaüstü uygulamaları] |
| Desteklenen en düşük sunucu | Windows Server 2008 [yalnızca masaüstü uygulamaları] |