Aracılığıyla paylaş


[Bülten Arşivi ^][< Birim 1, Sayı 2][Birim 1, Sayı 4 >]

Systems Internals Bülten Cilt 1, Sayı 3

http://www.sysinternals.com
Telif Hakkı (C) 1999 Mark Russinovich


19 Haziran 1999 - Bu sorunda:

  1. SISTEM IÇLERINDEKI YENILIKLER

    • SDelete v1.1
    • Dizeler v2.0
    • Günlüğe Kaydedilen
    • Filemon v4.13
    • DebugView/EE v3.1
    • "NT Ağ İletişimi İçinde"
    • Haziran "NT Internals"
    • NTFrob Güncelleştirme Durumu
    • Pek De Yeni Olmayan Şeyler
  2. İÇ HABERLER

    • Numega DriverStudio Yayınlandı
    • Haziran Platformu SDK'sı Kullanılabilir
    • Win2K Sistem Dosya Koruyucusu (SFP)
    • Ağdan Açılan Dosyaları Kapatma
  3. YAKLAŞANLAR

    • "AWE"-bazı Win2K API'leri

SPONSOR: WINTERNALS SOFTWARE

Systems Internals Newsletter, Winternals Software sponsorluğunda, web'de http://www.winternals.com. Winternals Software, Windows NT/2K için gelişmiş sistem araçlarının önde gelen geliştiricisi ve sağlayıcısıdır. Winternals Software ürünleri Windows NT 4.0 için FAT32, ERD Commander (Windows NT için önyükleme diski özelliği) ve NTRecover'ı içerir.

Winternals Software, Regmon ve Filemon Enterprise Sürümü s sürümünü duyurur. Bu yardımcı programlar, ücretsiz Filemon ve Regmon'un tüm işlevlerini sağlar ve şu güçlü özellikleri ekler:

  • uzak Win9x/NT sistemlerinde gerçekleşen kayıt defteri ve dosya sistemi etkinliğini görüntüleme
  • çıktıyı bir dosyaya gerçek zamanlı olarak günlüğe kaydetme
  • çıkış satırlarını panoya kopyalama
  • filtreyle eşleşen çizgileri vurgulama
  • farklı bilgisayarlardan çıktıyı aynı anda görüntüleme
  • çıktıyı doğrudan yazıcıya yazdırma
  • son 5 filtre seçiminizi kolayca geri çağırma

Adresinden sipariş ve fiyatlandırma bilgilerini alma http://www.winternals.com.


Herkese merhaba,

Systems Internals bülteninin üçüncü sürümüne hoş geldiniz. Bültenin şu anda 4400 abonesi var.

Son bültende Microsoft'un Windows 2000'e (Win2K) doğru ilerlediğini bildiğimiz için Mavi Ölüm Ekranı'nı nasıl ortadan kaldırdığını belirttim. Yeni Win2K Mavi Ekran, Windows NT'nin önceki sürümlerinin Mavi Ekran'da bulunan yüklü sürücü ve yığın dökümü bilgilerine sahip değildir. Microsoft'un çıkardığı bilgileri yararlı bulup bulmadığını ve işleri yalnız bırakmalarını isteyip istemediğinizi sordum. Yanıt neredeyse aynıydı ve her yanıtlayan (biri hariç) Microsoft'un neden en düşük ortak paydaya gittiğini merak ediyordu. Tony Lavinio tarafından gönderilen tipik bir görüş aşağıda verilmiştir:

Başka bir deyişle, Microsoft'un kararlarını temel aldığı müşteri yanıtı şu şekildedir:

Anlamıyorum, o yüzden kötü olmalı. "Onu yok edin."

Neden ekranın tamamını kaldırıp "Çek, Tak'ı Yeniden Yerleştir, Baştan Başla" iletisini yerleştirmiyor? Neden bazı şeylerin neden ekşi olduğuna dair birkaç ipucundan birini ellerinden alıyor?

En azından daha önce, bir virüs tarayıcısı ya da birleştirici ya da buggy sürücüsü olsaydı aramaya başlamamız gereken bir nokta olurdu.

Bu araç yalnızca 10.000'de 1'imize yardımcı oluyorsa, NT dağıtımının geniş bir tabanıyla buna değer. Özellikle %0,01 değeri diğer %99,99'unun iyi bir kısmını desteklediğimiz için.

Yalnız olmayan kim? Microsoft'tan birinin Mavi Ekran kilitlenme raporlarını alan biri olması çok şaşırtıcı değildir. İşte tony'nin bunun nedeni hakkındaki spekülasyonunu doğrulayan değişiklikle ilgili eğimleri:

MS'de PSS'de NT Kurulum grubunda çalışıyorum (mavi ekran sorunlarını gidermeyi ele alan). Sizi temin ederim ki konuştuğum insanların çoğu 4.0 mavi ekrandaki bilgilerle ne yapacağını bilmiyor. Yığının her yerinde NAIFILTR.SYS ile bir durak 0xA gördüğünüzden eminim, virüsten koruma yazılımınızı güncelleştirmek için bilgi sahibi olursunuz, ancak çoğu kişi bu bağlantıyı yapmaz ve durdurma kodunun ve parametrelerin onlar için yararlı olduğunun farkında değildir. Mavi ekran verilerini yorumlamayı anlayan Kişiler büyük olasılıkla rahatsız olacaktır, ancak ne yazık ki azınlıktırlar.

Son bültende de belirttiğim gibi, Microsoft'un NT 4.0 Mavi Ekran'ı ileriye taşıması gerektiğini ve yüklü sürücü listesini ve yığın dökümünü tutması gerektiğini düşünüyorum. Ayrıca daha az değil, daha fazla bilgi sağlayarak Mavi Ekranı daha iyi hale getirebileceklerini düşünüyorum. Örneğin, kilitlenme sırasında şu anda yürütülen işlemin adını neden göstermiyor? Ya da daha fazla BugCheck çağrısının yalnızca hatalı olan adresi değil, hata verenin adresini geçirmesini mi? PSS'nin Mavi Ekran hakkında bilgisiz olan bu kadar çok müşteriyle karşılaşmış olmasının önemli bir nedeni, Microsoft'un bunu nasıl okuyacakları hakkında hiçbir zaman belge yazmamış olmasıdır. Bu nedenle, kullanıcı cehaletinin en azından bir kısmı Microsoft'un kendi omuzlarındadır.

Mavi Ekranların nasıl oluştuğu ve (NT 4) üzerindekiler hakkında daha fazla bilgi edinmek istiyorsanız Mavi Ekran, Windows NT Magazine'den Aralık 1997'de yayınlanan "Mavi Ekranın İçinde" makaleme bakın ( http://www.sysinternals.com/publ.htm).

Her zamanki gibi, lütfen bülteni ilginizi çekebileceğini düşündüğünüz arkadaşlarınıza iletin.

Teşekkür ederiz!

-İşaretle

SISTEM IÇLERINDEKI YENILIKLER

SDELETE V1.1

SDelete'i tanıttığım son bültende, dosya verilerini geri alınamayacak şekilde yok etmek ve diskin daha önce silinmiş verilerden oluşan boş alanını temizlemek için kullanabileceğiniz güvenli bir silme yardımcı programı. SDelete'in ilk sürümü, sildiğiniz dosyaların adlarının üzerine güvenle yazamadı. Bir dosyanın adı genellikle hassas bilgileri ortaya çıkartır ve SDelete kullanarak görünen ada sahip bir dosyayı silmek bu bilgilerin açığa çıkmasına neden olabilir. Bu boşluğu ele almak için SDelete'i yalnızca dosya verilerinin üzerine güvenli bir şekilde yazmayacak, aynı zamanda dosya adlarını da yazacak şekilde güncelleştirdim. SDelete, dosyayı 26 kez yeniden adlandırarak bir dosya adını güvenli bir şekilde siler ve dosya adındaki her harfi alfabenin ardışık harfleriyle değiştirir ve 'A'dan 'Z'ye değiştirir.

Tam kaynak koduyla SDelete v1.1'i şu konumdan indirin: http://www.sysinternals.com/sdelete.htm.

STRINGS V2.0

Yürütülebilir dosyalar ve DLL'ler genellikle belgelenmemiş Kayıt Defteri değerlerini ve belgelenmemiş işlevlere işaret eden hata iletilerini ortaya çıkarabilen eklenmiş dizelere sahiptir. Ne yazık ki çoğu Windows NT/2K sistem DLL'leri ve EXE'leri Unicode karakter dizelerini kullanacak şekilde yazılırken, Grep gibi geleneksel dize arama araçları yalnızca ASCII dizelerini ayıklar. İkili dosyaları ASCII veya Unicode karakter dizeleri için taramak için birkaç yıl önce Strings yardımcı programımın ilk sürümünü yazdım. Nt internals araştırmamda Microsoft'un belgelemiyor olduğu şeyleri anlamaya yardımcı olmak için bunu birçok kez kullandım.

Ancak dizelerin her zaman önemli bir kusuru vardı ve bu, tek bir çekimde birden çok dosyayı tarayabilmeniz için bir joker ifadeyi dosya tanımlayıcısı olarak kullanamamasıydı. Bu özelliği, örneğin bir Kayıt Defteri değerinin adı göz önüne alındığında, hangi sistem DLL'lerinin başvurduğunu kolayca belirleyebilmem için istedim.

Sonunda Dizeler'i tam joker dosya adlarını alacak ve dizinleri yinelenecek şekilde güncelleştirdim. Bir joker karakter ifadesi belirtirseniz, Dizeler çıkış satırlarına otomatik olarak bir dizenin bulunduğu dosyanın adını ön ekler, böylece aşağıdaki gibi bir şey yapabilirsiniz:

strings *.dll | grep SafeBoot

Bu ifadenin çıktısını görüntülemek (Windows NT Resource Kit Posix yardımcı programlarında grep sürümü mevcuttur), Windows 2000'de Kasa Boot Kayıt Defteri anahtarını denetleyen sistem DLL'leri hakkında sizi bilgilendirir. Dizeler, Win2K sistem DLL'leri, sürücüleri ve yürütülebilir dosyaları kullanan yeni Kayıt Defteri değerlerini görmek için de son derece kullanışlıdır. Örneğin, NT 4.0 SP4 TCP/IP yığınında (tcpip.sys) başvuruda bulunan Kayıt Defteri değerlerini Windows 2000 TCPIP yığını tarafından başvurulmuş değerlerle karşılaştırmak için Dizeler'i kullandım. Win2K'nin TCPIP yığınında yeni olan değerlerin yaklaşık yarısı aşağıdadır (bunların tümü aşağıda bulunur HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters):

ReservedPorts
DefaultGatewayMetric
InterfaceMetric
TempLeaseExpirationTime
TempIpAddress
TempMask
DhcpDefaultGateway
TcpWindowSize
TcpInitialRTT
TcpDelAckTicks
EnableTrafficControl
EnableTOSetting
MaxNormLookupMemory
MaxSendSegments
MaxFreeConnections
MaxFreeTWTcbs
FFPFastForwardingCacheSize

Microsoft'un yığının yeni yapılandırma parametrelerinin tümünü belgeledikten sonra nefesimi tutmayacağım.

Strings v2.0 sürümünü şu konumdan indirebilirsiniz: http://www.sysinternals.com/misc.htm.

LOGGEDON

Hiç uzak nt sisteminde kimin oturum açtığını bilmek istediniz mi? Öyleyse, LoggedOn'ı indirmek istersiniz. LogdOn, hangi kullanıcıların yerel bilgisayarda veya uzak bilgisayarda etkileşimli olarak oturum açtığını ve kaynak bağlantıları (örneğin, dosya veya yazıcı paylaşımı) aracılığıyla hangi kullanıcıların oturum açtığını belirten basit bir yardımcı programdır. Aşağıda örnek LoggedOn çıkışı verilmiştir:

C:\>loggedon main

LoggedOn v1.0 - Logon Session Displayer
Copyright (C) 1999 Mark Russinovich
Systems Internals - http://www.sysinternals.com

Users logged on locally:
MAIN\Administrator

Users logged on via resource shares:
MAINDOM\MARK

Windows NT ve Win2K, uygulamaların bilgisayarda kimin oturum açtığını belirlemek için kullanabileceği bir API sağlamaz, ancak LogdOn bunu bir sistemin HKEY\USERS Kayıt Defteri ağacına yüklenen Kayıt Defteri anahtarlarına bakarak belirler. Etkileşimli olarak oturum açan herhangi bir kullanıcının profilleri bu anahtara yüklenir ve profiller, profilin ilişkili kullanıcı hesabının SID'sini (Güvenlik Kimliği) tanımlayan adlara sahiptir. Örneğin, Regedit'i açar ve altına HKEY_USERS bakarsanız şunun gibi bir şey görürsünüz:

HKEY_USERS\.DEFAULT\S-1-5-21-734676951-386466661-1233803906-500

Burada etkileşimli olarak yalnızca bir kullanıcı oturum açmış olur. RID (Göreli Kimlik), RID NT'nin yönetici hesapları için ayırdığı 500 olduğundan, bu yöneticiye yerel veya etki alanı yöneticisini belirtebilirsiniz.

LogdOn, bir sistemin başka bir sistemin Kayıt Defteri'ne bakmasını sağlayan API'leri kullanarak uzak bilgisayarın HKEY_USERS anahtarını okur ve bulduğu SID'leri hesap adlarına dönüştürür. LoggedOn kaynak paylaşımı aracılığıyla kimin oturum açtığını belirlemek için SDK'da belgelenen NET API'yi kullanır. Net komut satırı aracı, NET API'sini kapsamlı bir şekilde kullanır. Uzak bir sistemin Kayıt Defteri'ne erişen LoggedOn'un bir yan etkisi, LoggedOn'u çalıştırdığınız hesabın her zaman LoggedOn'un çıkışındaki bir kaynak paylaşımı aracılığıyla uzak sistemde oturum açmış olarak görünmesidir.

LoggedOn'ı tam kaynak koduyla şu konumdan indirebilirsiniz: http://www.sysinternals.com/misc.htm.

FILEMON V4.13

Filemon v4.13, Windows NT dosyalayıcı sürücüsündeki değişiklikleri yansıtan ve yanlışlıkla 4.12 sürücüsüne açtığım bir hatayı düzelten bir güncelleştirme olan yeni yayımlandı. 4.13 filtre sürücüsünde şu değişiklikler vardır:

  • bazı iç veri yapılarını korumak için Kaynak eşitleme türünü kullanır
  • yeni Win2K IRP'yi işler IRP_MJ_PNP_POWER

Kaynak eşitleme türü hem Windows NT 4.0 hem de Win2K Cihaz Sürücüsü Geliştirme Setleri'nde (DDK) neredeyse belgelenmemiştir. Tasarım Kılavuzu Kaynaklar'dan bile bahsetmez, ancak işlevleri "Yönetici Destek Yordamları" bölümündeki Başvuru bölümünde belgelenmiştir. Kaynaklar, farklı iş parçacıkları tarafından aynı anda okunabilen ancak güncelleştirme sırasında iş parçacığı tarafından özel erişim gerektiren veri yapılarını korumaya yönelik kullanışlı bir mekanizmadır. Bu nedenle, okuyucular tarafından paylaşılan erişim ve yazarlar tarafından özel erişim için alınan okuyucu/yazar kilitleridir. Dosya sistemi sürücüleri Kaynakları kapsamlı bir şekilde kullandığından, Dosyamon'ı uygun yerlerde kullanacak şekilde güncelleştirmenin uygun olduğunu düşündüm.

Filemon v4.13 ayrıca yeni IRP_MJ_PNP_POWER IRP'yi de işler, böylece Win2K altında çalışırken güç ve tak-çalıştır kullanımı kolay bir filtre sürücüsüdür. Bu tür IRP'leri işlemek için bir dosya sistemi filtre sürücüsünün tek gereksinimi, bunları filtrenin bağlı olduğu dosya sistemi cihazlarına geçirmektir.

Filemon v4.13'i tam kaynak koduyla şu konumdan indirebilirsiniz: http://www.sysinternals.com/filemon.htm.

DEBUGVIEW/EE V3.1

DebugView/EE, Win95, Win98, WinNT ve Win2K altında Win32 programları veya çekirdek modu cihaz sürücüleri tarafından oluşturulan yerel veya uzak hata ayıklama çıkışını yakalamak için kullanabileceğiniz çok yönlü bir hata ayıklama çıkış izleyicisidir. Kullanışlılığı, kullanıcının cihaz sürücüsü kullanarak kilitlenme yaşadığı ortamlarda sınırlıdır, ancak debugView'un kilitlenme kaybolmadan önce yakaladığı tüm hata ayıklama çıkışı. DebugView/EE'nin en son sürümü, Windows NT/2K'da bu sorunu giderir. Kullanıcı bir cihaz sürücüsü tarafından oluşturulan çekirdek modu çıkışını yakalarsa ve kullanıcı NT'yi kilitlenme bilgi dökümünü kaydedecek şekilde yapılandırdıysa, sistem yeniden başlatıldığında DebugView/EE döküm dosyasından hata ayıklama çıkışını ayıklayabilir. DebugView/EE'nin Düzenlemesini Kullanma|Hata ayıklama çıktısı için bir bellek dökümünü taramasını sağlamak için İşlem Kilitlenme Dökümü menü seçimi. Bu özellik, kullanıcıların kilitlenme anında sürücünüzün oluşturduğu hata ayıklama çıkışını içeren bir metin dosyasını size geri göndermesini sağlar.

DebugView/EE v3.1 dosyasını şu konumdan indirin: http://www.sysinternals.com/debugview.htm.

"İÇ NT AĞı"

Mart 1999 Windows NT Magazine "NT Internals" sütunum artık yayında. HANGI API'leri uyguladığı, protokol yığınlarının API'lerle arabirim oluşturması ve donanım satıcılarının protokol sürücüleriyle çalışmak için ağ sürücüleri yazması dahil olmak üzere NT'nin ağ mimarisini yukarıdan aşağıya doğru öğrenin. Ayrıca, seri durumdan çıkarılmış NDIS ve ATM desteği de dahil olmak üzere Win2K ağının bazı yeni özellikleri hakkında bilgi edinin.

"Inside NT Networking" ve diğer geçmiş NT Internals sütunlarını şu adreste satır içi olarak okuyun: http://www.sysinternals.com/publ.htm.

HAZIRAN "NT INTERNALS"

Windows NT Magazine sütunumun Haziran taksidi "INSIDE EFS, Part 1". Bu makalede, Microsoft'un Şifreleme Dosya Sistemi'nin (EFS) mimarisi açıklanır ve EFS'nin bir dosyayı şifrelerken izlediği adımlarda ayrıntılı bir adım adım izlenir. EFS, Win2K NTFS sürücüleri için saydam bir şifreleme olanağı sağlar ve Microsoft, NTFSDOS aracımızın ntfs dosyalarını güvenliklerine bakılmaksızın okuyabilme becerisini ele almak için özel olarak bunu geliştirdi. Bu sütun üç ay içinde satır içi olarak kullanılabilir olacak.

İki bülten önce şifrelenmiş dosyaları yedeklemek ve geri yüklemek için gereken EFS API'lerinin nasıl belgelenmemiş olduğundan bahsettim. Ne yazık ki bu API'ler hala MSDN'nin geçerli sürümünde belgelenmemiştir. Ancak, Microsoft'un "Microsoft Gizli" olarak işaretlenmiş belgeleri iş ortaklarına ve yedek yazılım satıcılarına gönderdiği konusunda bilgilendirildim. Ayrıca Microsoft Dosya Sistemleri Program Yöneticisi David Golds, Dallas'taki son Microsoft TechEd konferansında Win2K için dosya sistemi geliştirmeleri hakkında bir konuşma sundu. Sunuda, üzerinde yerinde http://www.teched99.com/slides/1-337.pptgörüntüleyebileceğiniz slaytlar, yedekleme API'lerinin belgelenmemiş olduğundan, ancak belgeleri istediğinizde onu rahatsız edebilirsiniz. Ne yazık ki, e-posta adresi slaytlarda listelenmiyor.

Windows NT Magazine abonelik bilgileri için ziyaret edin http://www.winntmag.com .

NTFROB GÜNCELLEŞTIRME DURUMU

NTFrob, birkaç yıl önce yayımladığım ve NT 4.0'da ön plan ve arka plan işlemlerinin kuantum uzunluklarını hassas bir şekilde yapılandırmanızı sağlayan bir yardımcı programdır. NTFrob, NT çekirdeğinin içindeki veri yapılarını değiştirir, bu nedenle yüksek oranda Hizmet Paketine özgüdür. NT 4.0 Service Pack 5 sürümünden bu yana SP 5 güncelleştirmesi olan NTFrob v1.5'i ne zaman yayımlayacağımı soran sorgularla yetkim kaldırıldı. Yanıt şudur: Microsoft'un MSDN abonelerine hata ayıklama bilgileri de dahil olmak üzere SP5 sağlamasını bekliyorum. Yeni Hizmet Paketleri için NTFrob'un güncelleştirilmesinde hata ayıklama bilgilerine ihtiyacım var.

NT 4 SP0-4 için NTFrob'ı şu konumdan indirebilirsiniz: http://www.sysinternals.com/ntfrob.htm.

ÇOK YENI OLMAYAN ŞEYLER

Birkaç ay önce Systems Internals'te bir Win9x/NT/2K seri ve paralel bağlantı noktası monitörü yayımladım. Portmon, uygulamaların gönderdikleri ve aldıkları veriler de dahil olmak üzere seri ve paralel bağlantı noktalarıyla tam olarak nasıl etkileşime geçtiğini görmenizi sağlar. Çevirmeli oturumları, bağlantı seri bağlantılarını veya yazıcı etkinliğini izlemek için kullanabilirsiniz. Portmon büyük bir hit oldu ve yakın zamanda Ziff-Davis Yazılım Kitaplığı'ndan 5 yıldız aldı, mümkün olan en yüksek derecelendirme. 5 yıldız kazanan diğer Systems Internals araçları Regmon, NTFSDOS ve BlueSave'tir.

Portmon'ı indirin: http://www.sysinternals.com/portmon.htm.

İÇ HABERLER

DRIVERSTUDIO YAYıNLANDı

CompuWare'in NuMega Labs'i, Windows 9x/NT/2K cihaz sürücüsü geliştiricileri için kapsamlı bir araç seti olan DriverStudio'yı yayımladı. SoftICE 4.0, Sürücüler için BoundsChecker, VtoolsD, DriverAgent, DriverWorks, Sürücüler için FieldAgent içerir ve gelecekte Sürücüler için TrueTime ve Sürücüler için TrueCoverage eklenecektir. Son bültende de söylediğim gibi, bu mutlaka sahip olunması gereken bir geliştirici araç setidir. NuMega ayrıca "Driver Central" adlı geliştirici odaklı bir cihaz sürücüsü web sitesi de başlattı - http://www.numega.com/drivercentral/default.asp.

HAZIRAN PLATFORMU SDK'Sı YAYıNLANDı

Microsoft Platform SDK'sının Haziran sürümünü şu konumdan indirebilirsiniz: http://www.msdn.microsoft.com/developer/sdk/platform.asp.

WIN2K SISTEM DOSYA KORUYUCUSU (SFP)

NT sistem yöneticilerinin ve kullanıcılarının en büyük kavramalarından biri NT'nin "DLL Hell"idir. DLL cehennemi, birçok uygulamanın anahtar sistem DLL'lerini paketledikleri sürümlerle güncelleştirmesinin sonucudur. Uygulamalar genellikle düzgün çalıştıklarını garanti edebilmeleri için bunu yapar, ancak bir DLL'yi değiştirdiklerinde uyumsuz sürümleri yükleyerek diğer uygulamaları birçok kez bozarlar, hatta DLL'yi daha eski bir sürüme "güncelleştirebilirler".

Microsoft, Sistem Dosya Koruyucusu'nun (SFP) kullanıma sunulmasıyla Win2K'deki DLL sürüm oluşturma sorunlarını gidermiştir. Aslında, adı yakında Windows Dosya Koruyucusu (WFP) olarak değişecektir, ancak Beta 3 (derleme 2031) itibarıyla hala SFP'dir. SFP, sistem ön başlatıldığında Winlogon işleminin (winlogon.exe) yüklendiği sfc.dll adlı bir DLL'de uygulanır. SFP, 30-40 farklı dizinde yüklü olan yaklaşık 3000 standart Win2K sistem DLL'si, yürütülebilir dosya (.exe), yükleme dosyaları (.inf), sürücüler (.sys) ve yazı tipi (.fon) dosyalarının yerleşik bir listesini içerir. SFP başlatıldığında, koruduğu dosyaları içeren her dizinde bir değişiklik bildirimi dizin işlemi yürütür. Dosyayla oynandığını algıladığında, geçerli kullanıcıyı bilgilendiren bir iletişim kutusu açılır, olay günlüğüne çift yazar ve değiştirilen dosyayı %systemroot%\system32\dllcache içinde depolanan bir yedeklemeyle değiştirir. SFP'nin dllcache'de aradığı yedekleme dosyası eksikse veya üzerinde oynanmışsa, SFP Win2K yükleme medyasından yeni bir kopya alır.

SFP'nin koruduğu dosyaları görmek için, bu bültenin başka bir yerinde bahsedilen Dizeler yardımcı programını kullanarak %systemroot%\system32\sfc.dll dosyasına eklenmiş Unicode dize adlarının dökümünü alabilirsiniz.

Sistem dosyalarını güncelleştirebilen tek yardımcı programlar hotfix.exe, hizmet paketleri (update.exe), yükseltme yüklemeleri ve Win2K Update hizmetidir. Bu araçlar SFP'yi nasıl atlar? Dışarı aktarılan sfc.dll işlevini SfcTerminateWatcherThread çağırarak geçici olarak devre dışı bırakırlar ve dllcache alt dizinindeki güncelleştirmeleri yansıtmayı sağlarlar. Win2K'nin tüm sistem dosyalarının Microsoft tarafından dijital olarak imzalanması gerektiğini, bu nedenle bir sistem dosyasını kendi rastgele sürümünüzle güncelleştirmenin genellikle mümkün olmadığını unutmayın.

Win32 programları, FindFirstChangeNotification ve FindNextChangeNotification Win32 API'lerini kullanarak dizindeki değişiklikleri izleyebilir. Ancak, bu API'ler bir şeyin değiştiğini bir uygulamaya bildirir; uygulamaya tam olarak nelerin değiştiğini söylemezler. Bu nedenle, hangi dosyaların veya alt dizinlerin değişmiş olabileceğini belirlemek için bir uygulamanın tüm dizini taraması gerekir. SFP, NT'nin izlenen dizinlerde hangi dosyaların veya alt dizinlerin değiştiğini tam olarak bildirdiği bir değişiklik bildirimi isteği gerçekleştirmek için NT Yerel API'sini kullanır. SFP'nin kullandığı işlev NtNotifyChangeDirectoryFile olarak adlandırılır ve NT'nin Yerel API'sinin %90'ı gibi belgelenmemiştir. Yakın gelecekte NtNotifyChangeDirectoryFile'ın nasıl kullanılacağını gösteren Systems Internals'te bir uygulama arayın.

"Inside Win2K Güvenilirlik Geliştirmeleri, Bölüm 2" adlı Eylül "NT Internals" sütunum SFP'yi daha ayrıntılı olarak açıklar.

AĞDAN AÇıLAN DOSYALARı KAPATMA

Systems Internals ziyaretçilerinden en sık sorulan sorulardan biri " kullanıcıların ağdan açtığı dosyaları nasıl kapatacağım?" Kullanıcının uzaktan açılmış bir dosyası veya dizini varsa, dosyayı veya dizini yerel olarak silmeniz, yeniden adlandırmanız veya güncelleştirmeniz mümkün değildir. Benzer bir soru şudur: "kullanıcıların ağdan hangi dosyaları açtığını Nasıl yaparım??" Bu soruların her ikisi de Windows NT/2K ile birlikte gelen Net komut satırı yardımcı programıyla yanıtlandırılır. Hangi dosyaların açıldığını görmek için "net file" yazın. Açık dosya adlarının, karşılık gelen dosya adı tanımlayıcılarının ve dosyaların açık olduğu kullanıcıların adlarının listesini alırsınız. Gördüğünüz dosyalardan birini kapatmak için yazın net file <id> /close. Yerel olarak açılan dosyaları görüntülemek için NTHandle veya HandleEx araçlarımı kullanabilirsiniz.

Net komutunun dosya görüntüleme ve kapatma işlevinin altında yatan API'ler Platform SDK'sında ve MSDN Kitaplığı'nda belgelenmiştir. Açık dosyaları listelemek için NetFileEnum API'sini ve açık bir dosyayı kapatmak için NetFileClose API'sini kullanın. API'ler, net komutunun izin vermediği uzak sunuculardaki açık dosyaları listelemenize olanak sağlar.

NTHandle şu konumda kullanılabilir: http://www.sysinternals.com/nthandle.htm. HandleEx şu adreste kullanılabilir: http://www.sysinternals.com/handleex.htm.

YAKLAŞANLAR

AN "AWE"-SOME WIN2K API

Win2K, bellek yoğunluklu uygulamaların büyük miktarlarda fiziksel RAM'e doğrudan erişmek ve bunları yönetmek için kullanabileceği AWE (Adres Penceresi Uzantıları) adlı yeni bir API sunar. Bu API, Windows NT uygulamasının sanal adres alanında ele aldığı üst RAM sınırı olan 3 GB'tan da fazladır. Aslında, bir x86 sisteminde PSE (Sayfa Boyutu Uzantıları) ve 4 GB'tan fazla RAM varsa, bir uygulama bilgisayarın tüm belleğinden yararlanmak için AWE kullanabilir. Bu nedenle bu API, Web sunucuları ve veritabanı sunucuları gibi bellek kullanımına açık uygulamalar için idealdir. Bir dahaki sefere hem Win32 uygulamalarından hem de cihaz sürücülerinden API'lerin nasıl kullanılacağını anlatacağım.

Bellek kullanımına açık uygulamalar konusunda çalışırken, dosyaları önbelleğe alan bir uygulama (Web Sunucusu gibi) yazan herkes için bir ipucu aşağıdadır. Windows NT Cache Manager, Önbellek belleğini "görünümler" olarak adlandırılan 256 KB yuvaya böler. Boyutu 256 KB'tan küçük bir dosya önbelleğe alınmışsa Önbellek Yöneticisi'nin dosyaya 256 KB'lik yuvanın tamamını ataması gerekir; bu da Önbelleğin sanal belleğinin bir bölümünün boşa harcandığı anlamına gelir. Bu nedenle, kendi uygulamanızın sanal belleğinde boyutu 256 KB'tan küçük dosyaları önbelleğe almak ve boyutu 256 KB'tan büyük dosyaları önbelleğe almak için dosya sistemine güvenmek genellikle daha verimli bir performanstır. IIS 5.0 bu hileyi kullanır.


Systems Internals Bülten'i okuduğun için teşekkür ederiz.

Yayın tarihi: Cumartesi, Haziran 19, 1999 19:14 ottoh tarafından

[Bülten Arşivi ^][< Birim 1, Sayı 2][Birim 1, Sayı 4 >]