[Archiwum biuletynów ^][< Wolumin 2, Numer 2][Wolumin 2, Liczba 4 >]

System wewnętrzny biuletyn woluminu 2, numer 3

http://www.sysinternals.com
Copyright © 2000 Mark Russinovich


14 czerwca 2000 r. — w tym problemie:

  1. REDAKCJI

  2. CO NOWEGO W SYSINTERNALS

    • Regmon v4.25
    • ListDlls v2.22
    • TDImon v1.0
    • AutoUruchomienie w wersji 1.1
    • LDMDump v1.0
    • Kolumny wewnętrzne z kwietnia/czerwca
  3. INFORMACJE WEWNĘTRZNE

    • Historia kompilacji systemu Windows NT
    • Rozpoznawanie czasomierza systemu Windows NT/2000
    • Ponowne mapowanie klawiatury
    • mapowanie pamięci systemowej Sejf
    • Ukryte rejestrowanie systemu plików Windows 98
    • WinDev '00 West
  4. CO SIĘ DZIEJE

    • "Bezpieczne" Klucze rejestru systemu Windows 98

SPONSOR: WINTERNALS SOFTWARE

Biuletyn Internals Systems jest sponsorowany przez Winternals Software, w Sieci Web http://www.winternals.com. Winternals Software jest wiodącym deweloperem i dostawcą zaawansowanych narzędzi systemów dla systemu Windows NT/2K. Produkty Winternals Software obejmują FAT32 dla systemu Windows NT 4.0, ERD Commander Professional Edition (zaawansowane możliwości rozruchu dla systemu Windows NT) i Odzyskiwanie zdalne.

Nowo wydany TCPView Pro umożliwia monitorowanie aktywności TCP/IP w systemach Windows NT 4.0, Windows 2000 i Windows 95/98. W przeciwieństwie do wbudowanych narzędzi do monitorowania TCP/IP, które są dostarczane z systemem Windows (na przykład netstat), tcpView Pro pokazuje, który proces jest skojarzony z każdym adresem TCP/IP, co ułatwia określenie, jaka aplikacja jest odpowiedzialna za określone połączenia i działania. TcpView Pro zapewnia dynamiczny widok i widok statyczny. Widok statyczny przedstawia obecnie otwarte lokalne adresy IP, proces skojarzony z każdym punktem końcowym oraz zdalny adres IP, z którym jest połączony punkt końcowy. Widok dynamiczny, niedostępny w żadnym innym narzędziu, umożliwia wyświetlanie działania protokołu TCP/IP przez proces w czasie rzeczywistym.

Pobieranie informacji o cenach i pobieranie 14-dniowej wersji próbnej na stronie http://www.winternals.com/products/tcpview.shtml.

Witam wszystkich,

Witamy w biuletynie Systems Internals. Biuletyn ma obecnie 22 000 subskrybentów.

Dave Solomon i ja są w ostatnich etapach zawijania "Inside Windows 2000, 3rd Ed.", co oznacza, że książka będzie dostępna w połowie sierpnia, a nie pod koniec lipca (nie byłoby to produkt firmy Microsoft bez poślizgu w dacie wysyłki). Teraz, gdy książka jest w ostatecznej formie, mogę dać ci rundown na to, co jest w nim. Po pierwsze, ma około 50% więcej zawartości niż poprzednia edycja i zawiera cztery zupełnie nowe rozdziały. Oto spis treści:

  1. Wprowadzenie
  2. Architektura
  3. Mechanizmy systemowe
  4. Uruchamianie i zamykanie
  5. Mechanizmy zarządzania
  6. Procesy i wątki
  7. Zarządzanie pamięcią
  8. Zabezpieczenia
  9. System we/wy
  10. Storage
  11. Menedżer pamięci podręcznej
  12. Systemy plików
  13. Sieć

Podobnie jak w drugiej edycji, książka jest pełna eksperymentów, które demonstrują opisane przez nas koncepcje. Książka zawiera również dysk CD, który ma kopię całej witryny internetowej SysInternals, a także kilka narzędzi używanych w eksperymentach.

Dwa narzędzia, które napisałem specjalnie dla książki, zostały bardzo dobrze przyjęte przez recenzentów książek. Pierwszy nosi nazwę LiveKD i umożliwia uruchamianie dowolnego debugera jądra systemu Windows 2000 (i386kd, kd, WinDbg) w systemie na żywo. Oznacza to, że uruchamiasz narzędzie LiveKd, określając debuger, który ma być hostowany, a następnie wprowadzasz debuger i masz dostępne wszystkie polecenia debugera, które można by wykonać w przypadku debugowania zrzutu awaryjnego. Praktycznie wszystkie eksperymenty oparte na debugerze w książce mogą być uruchamiane przy użyciu liveKD, co oznacza, że nie potrzebujesz drugiego systemu ani kabla szeregowego, aby je wykonać.

Drugie narzędzie to rozszerzenie monitora wydajności, które umożliwia wyświetlanie wartości na żywo dowolnej zmiennej jądra. Jeśli na przykład chcesz monitorować ilość niestronicowanej puli używanej z narzędziem PerfMon, wybierz zmienną MmAllocatedNonPagedPool.

Dam ci znać w biuletynie, gdy książka jest obecnie, ale możesz teraz preorderować za pośrednictwem linku Amazon.com pod adresem www.sysinternals.com/links.htm. Jak zwykle, przekaż biuletyn do znajomych, że myślisz, że znajdzie to interesujące.

Dziękujemy.

-Mark

CO NOWEGO W SYSTEMACH WEWNĘTRZNYCH

REGMON V4.25

Ta najnowsza aktualizacja narzędzia do monitorowania rejestru Regmon obejmuje obsługę nowego KeyNameInformation typu zapytania systemu Windows 2000 dla ZwEnumerateKey usług systemowych i .ZwQuerykey Ta funkcja nie jest eksportowana do użytku przez aplikacje Win32, ale jest używana przez funkcje rejestru w ADVAPI32 w ramach systemu stosowania gałęzi rejestru rejestracji klas dla poszczególnych użytkowników.

Istnieją dwa sposoby, w jaki aplikacje Win32 w systemie Windows 2000 mogą otwierać część Rejestracja klas rejestru: mogą określić HKEY_CLASS_ROOT lub określić .HKLM\Software\Classes Pierwszy zwraca uchwyt do klucza klasy dla użytkownika w połączeniu z kluczem klasy globalnej, a drugi zwraca uchwyt tylko do informacji globalnych. Funkcja ADVAPI32 Registry może określić tylko, który użytkownik określił, sprawdzając podstawową nazwę dojścia klucza rejestru przekazanego przez użytkownika, dlatego wymaganie dla nowego typu zapytania. Aby uzyskać więcej informacji, zobacz dokumentację RegOpenKeyEx zestawu SDK.

Pobierz plik Regmon v4.25 pod adresem http:www.sysinternals.com/regmon.htm.

LISTDLLS V2.22

Gdy deweloper tworzy dynamiczną bibliotekę linków (DLL), informuje konsolidator o "adresie podstawowym" biblioteki DLL, czyli adresie, dla którego konsolidator tworzy informacje o adresie względnym w pliku obrazu biblioteki DLL. Jeśli biblioteka DLL ładuje się pod adresem innym niż adres podstawowy, moduł ładujący musi naprawić wszystkie adresy względne w załadowanym obrazie DLL, aby uwzględnić różnicę.

Te poprawki lub relokacje mogą zwiększyć czas uruchamiania aplikacji, więc deweloperzy oczywiście chcą zapobiec występowaniu relokacji. Jednak żmudne jest przejrzenie danych wyjściowych programu, takiego jak ListDLLs, porównywanie adresów ładowania z adresem podstawowym. Dlatego wprowadzono wersję 2.22 listDLLs podjąć nową opcję, -rktóra zawiera notatkę o przeniesieniu bibliotek DLL w danych wyjściowych.

Pobierz listyDLLs v2.22 pod adresem http://www.sysinternals.com/listdlls.htm.

ARCHITEKTURA V1.0

TDImon to najnowszy pakiet zaawansowanych narzędzi do monitorowania SysInternals, który pokazuje działania TCP i UDP w systemie w miarę jego wykonywania. Narzędzie przyjmuje jego nazwę od faktu, że monitoruje działanie TCP i UDP w interfejsie do stosu TCP/IP, a ten interfejs jest nazywany Interfejsem sterownika transportu (TCP). Wszystkie działania tcp i UDP aplikacji i sterownika muszą przechodzić przez ten interfejs, co oznacza, że żadne działanie TCP lub UDP nie jest poślizgnięte przez TDImon.

FUNKCJA NOTESMon udostępnia ten sam graficzny interfejs użytkownika co jego kuzyni, Filemon, Regmon, Portmon i DebugView, a podobnie jak w przypadku innych narzędzi do monitorowania, pokazuje nazwy procesów wykonujących działania, znaczniki czasu i ma możliwość filtrowania i wyróżniania. To sprawia, że PROGRAM NODEMon jest idealnym narzędziem do rozwiązywania problemów z siecią dla administratorów i narzędziem do debugowania protokołu TCP/IP dla deweloperów aplikacji. TDImon działa w systemach Windows 95, 98, NT 4 i Windows 2000.

Pobierz plik TDImon v1.0 pod adresem http://www.sysinternals.com/tdimon.htm.

LDMDUMP V1.0

System Windows 2000 zawiera nowy format partycjonowania o nazwie partycjonowanie nietrwałe, które pozwala przezwyciężyć niektóre wady partycjonowania w stylu MS-DOS używane przez wszystkie systemy operacyjne Windows do tej pory. Składnik o nazwie Menedżer dysków logicznych (LDM) zarządza woluminami na dyskach sformatowanych za pomocą partycji nietrwałych, które są nazywane dyskami dynamicznymi (dyski z partycjonowaniem w stylu MS-DOS są nazywane dyskami podstawowymi). Oprócz tego, że jest bardziej niezawodna ze względu na implementowane przez nich dublowanie partycji, dyski dynamiczne mają przewagę nad tworzeniem woluminów z wieloma partycjami bez konieczności ponownego uruchamiania systemu w celu ich rozpoznawania i instalowania przez sterowniki systemu plików.

Firma Microsoft nie udokumentowała formatu bazy danych partycjonowania LDM — ponieważ w rzeczywistości licencjonowała technologię firmy Veritas, która korzystała z tej samej bazy danych w swoim system UNIX oprogramowaniu do zarządzania woluminami, umowy licencyjne mogą uniemożliwić firmie Microsoft dokumentowanie tej bazy danych. W końcu może istnieć interfejs IOCTL win32 do LDM, ale w międzyczasie doszłem do formatu i napisałem narzędzie o nazwie LDMDump, którego można użyć do komunikacji równorzędnej wewnątrz bazy danych dysku dynamicznego. LDMDump przedstawia mniej więcej te same informacje co narzędzie DmDiag zestawu Windows 2000 Resource Kit, ale LDMDump przedstawia informacje w (wierzę) znacznie czystszy sposób. W tej chwili nie udostępniam kodu źródłowego dla tego narzędzia, ale jeśli interesuje Cię licencjonowanie go dla własnych aplikacji, skontaktuj się ze mną.

Przeczytaj o bazie danych LDM w magazynie systemu Windows 2000 "Inside Storage, część 2" w kolumnie http://www.sysinternals.com/publ.htm.

Pobierz plik LDMDump v1.0 pod adresem http://www.sysinternals.com/ldmdump.htm.

AUTORUNS V1.1

Być może znasz już funkcję AutoRuns, która została wydana w ciągu ostatnich dwóch miesięcy. Funkcja AutoUruchomienia pokazuje ustawienia automatycznego uruchamiania dla każdej lokalizacji w rejestrze i . Pliki INI, w których są określone takie informacje (lub tak myśleliśmy). Opinie użytkowników zawierają wskazówki dotyczące kilku lokalizacji, w których brakuje funkcji AutoRuns, a teraz jest wyświetlana ta najnowsza wersja.

Pobierz autouruchomienie w wersji 1.1 pod adresem http://www.sysinternals.com/misc.htm.

KOLUMNY WEWNĘTRZNE CZERWCA/LIPCA

Czy kiedykolwiek zastanawiałeś się dokładnie, jak usługi Win32 różnią się od standardowych aplikacji Win32? A może zastanawiasz się, co sprawia, że sekwencja rozruchu NT lub zamykania trwa tak długo. Odpowiadam na te pytania i więcej w mojej dwuczęściowej serii czerwca/lipca na usługi Win32 w Windows 2000 Magazine.

W części 1 biorę Cię w strukturze usługi Win32, wyjaśniając, jak akceptują polecenia z aplikacji klienckich. Następnie zaczynam opisywać Menedżera kontroli usług (SCM), który jest odpowiedzialny za zarządzanie usługami Win32, w tym ich uruchamianie i zamykanie. W części 2 kończę opis procesu uruchamiania usługi, który odbywa się podczas rozruchu systemu, a następnie informuje o sposobie zamykania usług przez program SCM. Przyjrzyję się również ulepszeniom firmy Microsoft wykonanym w narzędziu SCM w systemie Windows 2000 i zajmuję cię w narzędziu SrvAny Resource Kit.

Subskrybenci magazynu Windows 2000 mogą przeczytać kolumny w witrynie http://www.sysinternals.com/publ.htm.

INFORMACJE WEWNĘTRZNE

HISTORIA KOMPILACJI SYSTEMU WINDOWS NT

Jak już wiesz z poprzednich biuletynów, numer kompilacji systemu Windows NT (teraz Windows 2000) zwiększa się każdego dnia, gdy zespół kompilacji generuje nową kompilację z dnia ewidencjonowania kodu. Używając moich starych dysków CD kandydata do wersji beta i wydania, a także pomocy innych użytkowników, którzy korzystali z systemu Windows NT dłużej niż mam, skompilowałem listę numerów kompilacji, które odpowiadają publicznym wydaniom (wersje beta, kandydaci do wydania i pełne wersje). Pamiętaj, że daty są datą kompilacji, a nie datą wydania kompilacji. Na przykład ostatnia kompilacja Win2K, 2195, została wydana w grudniu, ale została wydana publicznie w lutym.

Tworzenie Zwolnij Data
297 PDC 1992
340 NT 3.1 Beta 1 Październik 1992 r.
397 NT 3.1 Beta 2 Marzec 1993 r.
511 NT 3.1 Lipiec 1993 r.
611 NT 3.5 Beta 1 Kwiecień 1994 r.
683 NT 3.5 Beta 2 Czerwiec 1994
756 NT 3.5 RC 1 Sierpień 1994 r.
807 NT 3.5 Wrzesień 1994 r.
944 NT 3.51 Beta 1 Luty 1995
1057 NT 3.51 Maj 1995 r.
1234 NT 4.0 Beta 1 Styczeń 1996 r.
1314 NT 4.0 Beta 2 Maj 1996 r.
1381 NT 4.0 Lipiec 1996 r.
1671 NT 5.0 Beta 1 Wrzesień 1997 r.
1877 NT 5.0 Beta 2 Wrzesień 1998 r.
1946 Win2K RC0 z wersji Beta 3 Grudzień 1998 r.
2000.3 Win2K RC1 z wersji Beta 3 Marzec 1999 r.
2031 Win2K Beta 3 Kwiecień 1999 r.
2072 Win2K RC1 Lipiec 1999
2128 Win2K RC2 Wrzesień 1999 r.
2183 Win2K RC3 Listopad 1999 r.
2195 Win2k Grudzień 1999 r.

ROZPOZNAWANIE CZASOMIERZA SYSTEMU WINDOWS NT/2000

Podczas gdy system Windows NT/2000 udostępnia usługi, w tym QueryPerformanceCounter, które pozwalają mierzyć czasy w dół do rozdzielczości licznika cyklu Pentium, jego interwałowe usługi chronometrażu mają nieco niższą rozdzielczość. W rzeczywistości domyślna rozdzielczość czasomierza jest taka sama jak interwał zegara systemowego, który jest 10 ms w systemach jednoprocesorowych x86 (zwykle 7,5 ms lub 15 ms w systemach SMP). Aplikacje mogą używać funkcji czasomierza multimediów w przestrzeni użytkownika, aby zwiększyć rozdzielczość do 1 ms, ale sterowniki są na zimno, jeśli chcą wyższych rozdzielczości - aż do Windows 2000, to znaczy.

System Windows 2000 wprowadza nową funkcję DDK, ExSetTimerResolutionktóra umożliwia sterownikom zmniejszenie interwału czasomierza systemowego do 1 ms. Chcesz wiedzieć, co dzieje się pod kapturem multimedialnych czasomierzy i ExSetTimerResolution? Zobacz "Inside Windows NT High Resolution Timers" (Wewnątrz czasomierzy wysokiej rozdzielczości systemu Windows NT) w: http://www.sysinternals.com/timer.htm.

BEZPIECZNE MAPOWANIE PAMIĘCI SYSTEMOWEJ

Chociaż jesteśmy na temat nowych funkcji jądra systemu Windows 2000 dla deweloperów sterowników, warto wspomnieć MmGetSystemAddressForMdlSafe. W poprzednich wersjach systemu Windows NT deweloper sterowników, który chciał uzyskać wskaźnik przestrzeni adresowej systemu dla buforu użytkownika lub części pamięci fizycznej musiał przekazać MDL (Lista deskryptorów pamięci), który opisał bufor fizyczny do MmGetSystemAddressForMdl.

Tworzenie wirtualnego mapowania w przestrzeni adresowej systemu używa zasobu nazywanego wpisami tabeli stron systemowych (PTE systemu), gdzie dla każdej strony fizycznej, która jest mapowana, jest wymagana jedna nazwa PTE systemu. Niestety elementy PTE systemu są ograniczonymi zasobami i mogą się zabrakło, jeśli sterowniki mapują duże ilości pamięci. Co się stanie, gdy MmGetSystemAddressForMdl nie będzie można uzyskać wymaganego przez niego rekordu PTE systemu? Można by pomyśleć, że zrobi to coś przydatnego, takiego jak zwrócenie NULL wartości jako zamapowanego adresu wirtualnego. Ale nie, to rezygnuje i niebieskie ekrany systemu. Takie zachowanie jest źle odzwierciedlone na sterowniku wysyłającym żądanie.

System MmGetSystemAddressForMdlSafe Windows 2000 robi to, co MmGetSystemAddressForMdl należy zrobić: zwraca wartość NULL , jeśli nie ma wystarczającej liczby punktów PTE systemu, aby utworzyć mapowanie buforu. Użyj tej funkcji, aby uniknąć kłopotliwego zrzutu, który wskazuje na sterownik. Jeśli masz sterownik z systemem NT 4 i Windows 2000, który warto wydać dwie różne wersje, jedną dla każdej platformy, aby móc korzystać z tego nowego interfejsu API w systemie Windows 2000.

PONOWNE MAPOWANIE KLAWIATURY

Jeśli jesteś jak ja, zacząłeś na klawiaturze system UNIX, gdzie klawisz ctrl był obecny na klawiaturze w pozycji zajmowanej na klawiaturze komputera przez klawisz caps-lock. Aby poprawić szybkość pisania i dowiedzieć się więcej o rozwoju sterowników urządzeń w systemach Windows 9x i Windows NT, jednym z moich pierwszych projektów sterowników w obu tych systemach operacyjnych było zaimplementowanie sterownika ponownego mapowania klawiatury. Wersję systemu Windows 9x można znaleźć na stronie http://www.sysinternals.com/c2cap95.htm i w wersji Windows NT/2K na stronie http://www.sysinternals.com/ctrl2cap.htm.

W systemie Windows NT/2K istnieje alternatywa dla używania sterownika filtru klawiatury. Definiując zmiany wpisów kodu skanowania w rejestrze, można całkowicie przeprogramować zachowanie klawiatury. W rzeczywistości zestaw Resource Kit systemu Windows 2000 zawiera narzędzie o nazwie RemapKey, które umożliwia zamianę klawiszy wokół przy użyciu graficznej reprezentacji klawiatury. W tym artykule w witrynie internetowej firmy Microsoft omówiono ponowne mapowanie klawiatury i sposób jej działania: http://www.microsoft.com/HWDEV/input/W2kscan-map.htm. Należy pamiętać, że narzędzie działa również na NT 4.

Więc powiedzmy, że nie masz zestawu Windows 2000 Resource Kit i wolałby nie wydawać pieniędzy na to (polecam, że robisz, jego pełne wszelkiego rodzaju fajne narzędzia i dokumentacja). Jeśli tak jest, możesz ręcznie ponownie zamapować klawiaturę. Artykuł firmy Microsoft, do którego właśnie się odwołujem, informuje o formacie klucza rejestru, w którym sterownik klawiatury szuka kodów ponownego mapowania (HKLM\ SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map), a ten artykuł, dostępny również w firmie Microsoft, informuje o kodach skanowania odpowiadających kluczom: http://www.microsoft.com/hwdev/download/desinit/scancode.zip.

Jeśli chcesz zamienić caps-lock i kontrolki (należy pamiętać, że moje filtry klawiatury całkowicie z dala od klawisza caps-lock, ponieważ nigdy go nie używam), możesz skopiować następujący tekst (nie w tym separatorów "----" do pliku (nazwij go jak swapcaps.reg) i kliknij dwukrotnie plik. Ustawienia zostaną zaimportowane do rejestru i po ponownym uruchomieniu zostaną zastosowane.

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,3a,00,1d,00,1d,00,3a,00,\
  00,00,00,00

Jeśli chcesz cofnąć mapowanie, usuń wartość Mapowanie kodu skanowania z rejestru i uruchom ponownie.

UKRYTE REJESTROWANIE SYSTEMU PLIKÓW WINDOWS 98

Czy kiedykolwiek przeglądasz katalog systemu Windows 98 i zauważyłeś podkatalog o nazwie \Windows\Applog? W tym katalogu prawdopodobnie znajdziesz pliki o nazwach pasujących do ostatnio uruchomionych aplikacji i rozszerzeń, takich jak . LGC i . LGD. Otwórz jeden z plików w Notatnik i wyraźnie zobaczysz ślad aktywności systemu plików, wraz z nazwami plików, przesunięciami i otwartymi i zamykanymi wywołaniami. Czy wirus generuje te dzienniki, czy jest to tajne narzędzie dołączone do systemu Windows 98, które zgłasza z powrotem do firmy Microsoft wzorce użycia aplikacji? Ani (gdyby to było albo, czytałeś o tym w prasie handlowej, a nie w biuletynie SysInternals). Jego część "ładuje najczęściej używane aplikacje do 36 procent szybciej" funkcji systemu Windows 98.

Ze względu na wpis Taskmon w systemie HKLM\Software\Microsoft\Windows\CurrentVersion\RunWindows 98 uruchamia program usługi podczas rozruchu o nazwie Taskmon. Taskmon ładuje VxD o nazwie FioLog (\Windows\System\FioLog.Vxd), aby zainstalować hak aktywności systemu plików, aby zobaczyć użycie plików podczas uruchamiania aplikacji. Narzędzie Taskmon monitoruje aktywność systemu plików wszystkich aplikacji podczas ich uruchamiania, z wyjątkiem tych wymienionych w HKLM\Software\Microsoft\Windows\CurrentVersion\Taskmon\ExcludeAppspliku . Narzędzie FioLog rejestruje działanie systemu plików uruchamiania aplikacji w katalogu Applog. Pliki dziennika, które tworzy, zaczynają się od rozszerzenia . LGA. Nie jest jasne, jak określa, kiedy usunąć dziennik i kiedy utworzyć nowy dla aplikacji z nowym rozszerzeniem z ostatnimi literami przyrostowymi. Oto część przykładowego pliku dziennika:

{
o da3034d0 d000 "C:\WINDOWS\NOTEPAD.EXE"
R da3034d0 0 40
R da3034d0 80 f8
R da3034d0 80 1c0
R da3034d0 7000 1000
R da3034d0 6000 e00
o da2b2610 156000 "C:\WINDOWS\SYSTEM\SHELL32.DLL"
R da2b2610 83000 1000
o da2b2f40 45110 "C:\WINDOWS\SYSTEM\SHLWAPI.DLL"
R da2b2f40 3c000 1000
R da2b2f40 3c000 1000
...

Wiersze są podzielone na cztery pola: pierwszy to kod operacji, gdzie o jest otwarty, R jest odczytywany i C zamykany. Nie zobaczysz W (dla zapisu), ponieważ narzędzie FioLog rejestruje tylko operacje odczytu podczas uruchamiania aplikacji, aby można było zoptymalizować uruchamianie aplikacji. Drugie pole to wewnętrzny wskaźnik pliku. Trzecie i czwarte pola muszą być interpretowane zgodnie z kodem operacji wiersza. Jeśli kod operacji jest R trzecim polem jest przesunięcie pliku, a czwarte pole jest długością odczytu. Jeśli jednak kod operacji to o trzecie pole jest otwartymi flagami, a czwartą jest nazwa otwartego pliku. W przykładzie ślad otwarcia notepad.exe zwraca wskaźnik pliku da3034d0, który można zobaczyć, że jest używany w kolejnych operacjach odczytu.

Podczas uruchamiania operacji defragmentacji program Defrag.Exe wykonuje program o nazwie CvtApLog (\Windows\System\Cvtaplog.exe), aby przetworzyć pliki dziennika. CvtApLog używa biblioteki DLL o nazwie ClusAlgo.Dll (\Windows\System\Clusalgo.dll), aby ustalić optymalne rozmieszczenie klastra, biorąc pod uwagę odczytane pliki dziennika i rejestruje te informacje w plikach o nazwie \Windows\Applog\Applog.d* , które prowadzą proces defragmentacji. CvtApLog generuje również plik o nazwie \Windows\Applog\Optlog.txt , który podsumowuje optymalizacje uruchamiania aplikacji, podsumowując pliki dziennika dyktowane. Poniżej przedstawiono częściową zawartość pliku Optlog.txt:

Program Launch Optimization Log - Created Tue Jun 13 11:42:52 2000

Programs Eligible for Optimization:
Ord Flag ProgName Uses   LastExecDate Program Path                           
1        RUNDLL32 65     2000.06.13   C:\WINDOWS\RUNDLL32.EXE                
2        ATIPTAAB 31     2000.06.13   C:\WINDOWS\SYSTEM\ATIPTAAB.EXE         
3        NOTEPAD  22     2000.06.13   C:\WINDOWS\NOTEPAD.EXE                 
4        PING     9      2000.06.10   C:\WINDOWS\PING.EXE                    
…             
17       IEXPLORE 2      2000.06.01   C:\PROGRAM FILES\INTERNET EXPLORER\IEXPLORE.EXE

Programs Ineligible for Optimization:
Ord Flag ProgName Uses   LastExecDate Program Path                           
18  S    GREP     5      2000.06.13   C:\BIN\GREP.EXE                        
19  S    STRINGS  12     2000.06.13   C:\BIN\STRINGS.EXE                     
20  S    ATI2CWXX 31     2000.06.13   C:\WINDOWS\SYSTEM\ATI2CWXX.EXE         

Control Parameters:
Use app profile        = Yes
Minimum log size    = 1000
Maximum no use days = 90
Maximum apps        = 50

Flags for Ineligible Programs:
S = Log size smaller than <Minimum log size>
U = Program not used for more than <Maximum no use days>
P = No profile for program
E = Associated program no longer exists
D = Log deleted (may be combined with one of the above)

Możliwość przenoszenia części plików używanych podczas uruchamiania aplikacji do ciągłego obszaru na dysku to technologia firmy Microsoft licencjonowana przez firmę Intel (aby to zobaczyć, wykonaj Defrag.exe ręcznie, a tekst "Akcelerator uruchamiania aplikacji Intel").

WINDEV '00 WEST

WinDev '00 East miał miejsce w zeszłym tygodniu do rekordowej frekwencji 660 osób (to wszystko hotel może pomieścić). Prelegenci obecni na konferencji reprezentują wielkie nazwiska w każdym obszarze rozwoju systemu Windows, w tym wszystkich od COM-god Don Box do ekspertów kierowców Jamie Hanrahan i Brian Catlin. Moje sesje obejmowały "Windows 2000 Internals", "Advanced Drivers", "Windows NT/2000 File System Drivers" i "Cluster Server".

Jeśli przykro, że przegapiłeś, masz szczęście, ponieważ masz drugą szansę. WinDev '00 West odbywa się w Santa Clara, CA od 11-15 września, a wszyscy ci sami prelegenci będą tam. Będę dawać te same sesje, i jak w WinDev East, będzie rozdawanie bezpłatnych t-shirtów SysInternals uczestnikom, którzy odpowiadają na moje pytania lub zadają szczególnie wnikliwe. Więcej informacji można znaleźć na stronie http://www.butrain.com/windev/west/default.htm.

CO SIĘ DZIEJE

KLUCZE REJESTRU SYSTEMU WINDOWS 98 "SECURE"

Chociaż rejestr systemu Windows 98 nie obsługuje zabezpieczeń, firma Microsoft zaimplementowała mechanizm definiowania ukrytych kluczy rejestru. Jaka aplikacja korzysta z tej technologii niewidzialności? Internet Explorer, oczywiście. Następnym razem powiem, jakie klucze IE ukrywa i jak system Windows 98 je implementuje.


Dziękujemy za przeczytanie biuletynu Systems Internals.

Opublikowano środę, 14 czerwca 2000 19:08 przez ottoh

[Archiwum biuletynów ^][< Wolumin 2, Numer 2][Wolumin 2, Liczba 4 >]