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

System wewnętrzny wolumin biuletynu 1, numer 3

http://www.sysinternals.com
Copyright (C) 1999 Mark Russinovich


19 czerwca 1999 r. — w tym problemie:

  1. CO NOWEGO W SYSTEMACH WEWNĘTRZNYCH

    • SDelete v1.1
    • Ciągi w wersji 2.0
    • Zalogowano
    • Filemon v4.13
    • DebugView/EE v3.1
    • "Wewnątrz sieci NT"
    • Czerwiec "NT Internals"
    • NTFrob Stan aktualizacji
    • Nie tak nowe rzeczy
  2. WIADOMOŚCI WEWNĘTRZNE

    • Wydano Numega DriverStudio
    • Dostępny zestaw SDK platformy czerwca
    • Funkcja ochrony plików systemu Win2K (SFP)
    • Zamykanie plików otwartych z sieci
  3. CO SIĘ DZIEJE

    • Interfejs API "AWE"- some Win2K API

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 (możliwości rozruchu dla systemu Windows NT) i NTRecover.

Winternals Software ogłasza wydanie Regmon i Filemon Enterprise Editions. Te narzędzia zapewniają wszystkie funkcje freeware Filemon i Regmon, a także dodają następujące zaawansowane funkcje:

  • wyświetlanie działań rejestru i systemu plików w zdalnych systemach Win9x/NT
  • dane wyjściowe dziennika do pliku w czasie rzeczywistym
  • kopiowanie wierszy wyjściowych do schowka
  • wyróżnianie wierszy pasujących do filtru
  • wyświetlanie danych wyjściowych z różnych komputerów jednocześnie
  • drukowanie danych wyjściowych bezpośrednio do drukarki
  • łatwe przypomnienie ostatnich 5 wyborów filtrów

Uzyskiwanie informacji o zamówieniu i cenach na stronie http://www.winternals.com.


Witam wszystkich,

Witamy w trzecim wydaniu biuletynu Systems Internals. Biuletyn ma obecnie 4400 subskrybentów.

W ostatnim biuletynie zwróciłem uwagę, jak Firma Microsoft zrobiła z Blue Screen of Death, ponieważ wiemy, że przechodzi do systemu Windows 2000 (Win2K). Nowy ekran Win2K Blue Screen nie zawiera załadowanych sterowników i informacji zrzutu stosu, które są obecne na blue screen wcześniejszych wersji systemu Windows NT. Zapytałem, czy znajdziesz informacje, które microsoft pozbawił przydatnych i chciałbym, aby zostawili rzeczy sam. Odpowiedź była praktycznie jednogłośna, a każdy respondent (z wyjątkiem jednego) zastanawiał się, dlaczego Microsoft idzie na najniższy wspólny mianownik. Oto typowa opinia, wysłana przez Tony'ego Lavinio:

Innymi słowy, jest to odpowiedź klienta, na którą firma Microsoft opiera swoją decyzję:

"Nie rozumiem tego, więc musi to być złe; sprawić, aby odejść."

Dlaczego nie usuwają całego ekranu i wyświetlają komunikat "Pull Plug, Reinsert Plug, Reinsert Plug, Start Over"? Dlaczego zabierają jedną z niewielu wskazówek mamy, dlaczego rzeczy poszły kwaśne?

Przynajmniej wcześniej, jeśli był to skaner wirusów lub defragmentator lub sterownik buggy, mielibyśmy punkt, od którego należy rozpocząć wyszukiwanie.

Jeśli to narzędzie pomaga tylko 1 na 10 000 z nas, z szeroką bazą wdrożenia NT, warto. Zwłaszcza, że 01% popiera dobrą część pozostałych 99,99%.

KtoTo był samotny dysydent? Nic dziwnego, że jest to ktoś z firmy Microsoft, który pola Raporty o awarii Blue Screen. Oto ich pochylenie na zmianę, która potwierdza spekulacje Tony'ego co do przyczyny:

Pracuję w grupie Konfiguracja NT w programie PSS w usłudze MS (która obsługuje rozwiązywanie problemów z niebieskim ekranem). Mogę zapewnić, że większość osób, z którymi rozmawiam, nie wiem, co zrobić z informacjami na niebieskim ekranie 4.0. Jestem pewien, czy widziałeś stop 0xA z NAIFILTR.SYS na całym stosie wiesz, aby zaktualizować oprogramowanie antywirusowe, ale większość ludzi nie robi tego połączenia, i naprawdę nie zdaje sobie sprawy, że kod zatrzymania i params są przydatne dla nich. Osoby, którzy rozumieją, jak interpretować dane z niebieskiego ekranu, prawdopodobnie będą zirytowani, ale niestety są one mniejszością.

Jak stwierdziłem w ostatnim biuletynie, czuję, że Microsoft powinien nosić NT 4.0 Blue Screen do przodu, utrzymując załadowaną listę sterowników i zrzut stosu. Myślę również, że mogą sprawić, że Blue Screen lepiej, dostarczając więcej informacji, a nie mniej. Na przykład dlaczego nie jest wyświetlana nazwa aktualnie wykonywanego procesu w momencie awarii? A może mieć więcej wywołań BugCheck przekazać adres błędu, a nie tylko adres, który został uszkodzony? Głównym powodem, dla którego PSS wpadł na tak wielu klientów, którzy nie mają pojęcia o Blue Screen, jest to, że firma Microsoft nigdy nie napisała dokumentacji na temat tego, jak go przeczytać. Przynajmniej część winy za ignorancję użytkownika spoczywa zatem na własnych ramionach firmy Microsoft.

Jeśli chcesz dowiedzieć się więcej o tym, jak występują niebieskie ekrany i co znajduje się w systemie (NT 4). Blue Screen, zobacz mój artykuł z grudnia 1997 r., "Inside the Blue Screen", from Windows NT Magazine (można dostać się do wersji online z http://www.sysinternals.com/publ.htm).

Jak zwykle, przekaż biuletyn do znajomych, że uważasz, że może to interesujące.

Dziękujemy.

-Mark

CO NOWEGO W SYSTEMACH WEWNĘTRZNYCH

SDELETE V1.1

W ostatnim biuletynie wprowadziłem SDelete, bezpieczne narzędzie do usuwania, którego można użyć do nieodwracalnego zniszczenia danych plików, a także do czyszczenia wolnego miejsca na dysku wcześniej usuniętych danych. Pierwsza wersja narzędzia SDelete nie mogła bezpiecznie zastąpić nazw usuniętych plików. Nazwa pliku często ujawnia poufne informacje, a usunięcie pliku z nazwą ujawniającą przy użyciu narzędzia SDelete może spowodować ujawnienie tych informacji. Aby rozwiązać ten problem, zaktualizowałem usługę SDelete, aby nie tylko bezpiecznie zastąpić dane plików, ale także nazwy plików. Funkcja SDelete bezpiecznie usuwa nazwę pliku, zmieniając nazwę pliku 26 razy, zastępując każdą literę w nazwie pliku kolejnymi literami alfabetu z "A" na "Z".

Pobierz plik SDelete w wersji 1.1 z pełnym kodem źródłowym pod adresem http://www.sysinternals.com/sdelete.htm.

CIĄGI w wersji 2.0

Pliki wykonywalne i biblioteki DLL często zawierają ciągi osadzone w nich, które mogą ujawniać nieudokumentowane wartości rejestru i komunikaty o błędach, które wskazują na nieudokumentowaną funkcjonalność. Niestety, większość bibliotek DLL systemu Windows NT/2K i EXE są zapisywane w celu używania ciągów znaków Unicode, podczas gdy tradycyjne narzędzia do wyszukiwania ciągów, takie jak Grep, wyodrębniają tylko ciągi ASCII. Napisałem pierwszą wersję narzędzia Strings kilka lat temu, aby skanować pliki binarne ciągów znaków ASCII lub Unicode. Używałem go wiele razy w moich badaniach wewnętrznych NT, aby pomóc ustalić, co firma Microsoft nie dokumentuje.

Ciągi zawsze miały jednak ważną wadę i to było jego niezdolność do podjęcia wyrażenia wieloznacznego jako specyfikatora pliku, aby można było skanować wiele plików w jednym zdjęciu. Chciałem tej funkcji, aby na przykład na podstawie nazwy wartości rejestru można było łatwo określić, które biblioteki DLL systemu odwołują się do niej.

W końcu zaktualizowałem ciągi, aby mieć pełne nazwy plików z symbolami wieloznacznymi, a także cykliczne katalogi. Jeśli określisz ciąg wyrażenia wieloznacznego Ciągi automatycznie prefiksów wierszy wyjściowych o nazwie pliku, w którym zostanie znaleziony ciąg, aby można było wykonać następujące czynności:

strings *.dll | grep SafeBoot

Wyświetlanie danych wyjściowych tego wyrażenia (wersja języka Grep jest dostępna w narzędziach Windows NT Resource Kit Posix) informuje o tym, które biblioteki DLL systemu sprawdzają klucz rejestru Sejf Boot w systemie Windows 2000. Ciągi są również niezwykle przydatne do wyświetlania nowych wartości rejestru bibliotek DLL systemu Win2K, sterowników i plików wykonywalnych. Na przykład użyto ciągów do porównania wartości rejestru, do których odwołuje się stos TCP/IP NT 4.0 SP4 (tcpip.sys), do tych, do których odwołuje się stos TCPIP systemu Windows 2000. Poniżej przedstawiono około połowy wartości, które są nowe dla stosu TCPIP win2K (wszystkie z nich jestem assum znajdują się w obszarze HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters):

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

Nie wstrzymam oddechu, aż firma Microsoft będzie dokumentować wszystkie nowe parametry konfiguracji stosu.

Ciągi w wersji 2.0 można pobrać pod adresem http://www.sysinternals.com/misc.htm.

ZAREJESTROWANE

Czy kiedykolwiek chciałeś wiedzieć, kto był zalogowany do zdalnego systemu NT? Jeśli tak, należy pobrać wartość LoggedOn. LoggedOn to proste narzędzie, które informuje użytkowników, którzy są interaktywnie zalogowani do komputera lokalnego lub zdalnego, a także użytkowników zalogowanych za pośrednictwem połączeń zasobów (np. udziału plików lub drukarek). Oto przykładowe dane wyjściowe loggedon:

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 i Win2K nie udostępniają interfejsu API, którego aplikacje mogą używać do określania, kto jest zalogowany na komputerze, ale LogOn określa to, patrząc na klucze rejestru, które są ładowane do drzewa rejestru systemu HKEY\USERS . Profile każdego zalogowanego użytkownika interaktywnie są ładowane do tego klucza, a profile mają nazwy identyfikujące identyfikator SID (identyfikator zabezpieczeń) skojarzonego konta użytkownika profilu. Jeśli na przykład otworzysz element Regedit i przyjrzysz HKEY_USERS się temu elementowi, zobaczysz coś takiego jak:

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

W tym miejscu tylko jeden użytkownik jest zalogowany interaktywnie. Możesz poinformować administratora lokalnego lub administratora domeny, ponieważ identyfikator RID (względny identyfikator) to 500, czyli identyfikator RID NT rezerwuje dla kont administratorów.

Korzystając z interfejsów API, które umożliwiają jednemu systemowi wgląd w rejestr innego systemu, LogOn odczytuje klucz HKEY_USERS komputera zdalnego i konwertuje identyfikatory SID znalezione na nazwy kont. Aby określić, kto jest zalogowany za pośrednictwem udziału zasobów LoggedOn, używa interfejsu API NET, który jest udokumentowany w zestawie SDK. Narzędzie wiersza polecenia Net intensywnie korzysta z interfejsu API platformy NET. Skutkiem ubocznym logowania przy uzyskiwaniu dostępu do rejestru systemu zdalnego jest to, że konto, w którym uruchomiono funkcję LoggedOn, będzie zawsze wyświetlane jako zalogowane do systemu zdalnego za pośrednictwem udziału zasobów w danych wyjściowych usługi LoggedOn.

Możesz pobrać plik LoggedOn z pełnym kodem źródłowym na stronie http://www.sysinternals.com/misc.htm.

FILEMON V4.13

Plikmon w wersji 4.13 został właśnie wydany, aktualizacja, która odzwierciedla zmiany sterownika filer systemu Windows NT i naprawia usterkę przypadkowo wprowadzoną do sterownika 4.12. Sterownik filtru 4.13 ma następujące zmiany:

  • używa typu synchronizacji zasobów do ochrony niektórych wewnętrznych struktur danych
  • obsługuje on nowy protokół IRP Win2K, IRP_MJ_PNP_POWER

Typ synchronizacji zasobów jest praktycznie nieudokumentowany zarówno w systemach Windows NT 4.0, jak i Win2K Device Driver Development Kit (DDK). Przewodnik projektowania nie wspomina nawet o zasobach, podczas gdy ich funkcje są udokumentowane w dokumentacji w sekcji "Procedury pomocy technicznej kadry kierowniczej". Zasoby są przydatnym mechanizmem ochrony struktur danych, które mogą być odczytywane jednocześnie przez różne wątki, ale wymagają wyłącznego dostępu przez wątek podczas aktualizacji. W związku z tym są to blokady czytników/zapisów, które są uzyskiwane na potrzeby dostępu współużytkowanego przez czytelników i wyłącznego dostępu autorów. Sterowniki systemu plików intensywnie korzystają z zasobów, więc czułem, że należy zaktualizować Filemon, aby używać ich tam, gdzie jest to konieczne.

Plikmon w wersji 4.13 obsługuje również nowe IRP_MJ_PNP_POWER IRP, dzięki czemu jest to sterownik filtru przyjaznego dla zasilania i odtwarzania, gdy działa w systemie Win2K. Jedynym wymaganiem sterownika filtru systemu plików w obsłudze irps tego typu jest przekazanie ich do urządzeń systemu plików, do których jest dołączony filtr.

Plikmon w wersji 4.13 można pobrać z pełnym kodem źródłowym na stronie http://www.sysinternals.com/filemon.htm.

DEBUGVIEW/EE V3.1

DebugView/EE to wszechstronny monitor danych wyjściowych debugowania, którego można użyć do przechwytywania lokalnych lub zdalnych danych wyjściowych debugowania generowanych przez programy Win32 lub sterowniki urządzeń w trybie jądra w ramach systemu Win95, Win98, WinNT i Win2K. Jego użyteczność jest ograniczona w środowiskach, w których użytkownik doświadcza awarii przy użyciu sterownika urządzenia, jednak — wszystkie dane wyjściowe debugowania DebugView przechwytuje przed utratą awarii. Najnowsza wersja debugview/EE rozwiązuje ten problem w systemie Windows NT/2K. Jeśli użytkownik przechwytuje dane wyjściowe trybu jądra wygenerowane przez sterownik urządzenia, a użytkownik skonfigurował nt do zapisywania zrzutu awaryjnego, debugView/EE może wyodrębnić dane wyjściowe debugowania z pliku zrzutu po ponownym uruchomieniu systemu. Korzystanie z widoku DebugView/edycji EE|Wybierz menu Zrzut awaryjny procesu, aby przeskanować zrzut pamięci na potrzeby danych wyjściowych debugowania. Ta funkcja umożliwia użytkownikom wysyłanie z powrotem pliku tekstowego zawierającego dane wyjściowe debugowania wygenerowane przez sterownik aż do czasu awarii.

Pobierz element DebugView/EE w wersji 3.1 pod adresem http://www.sysinternals.com/debugview.htm.

"INSIDE NT NETWORKING"

Moja kolumna "NT Internals" z marca 1999 r. jest teraz dostępna. Dowiedz się więcej o architekturze sieciowej NT od góry do dołu, w tym o tym, jakie interfejsy API implementuje, jak stosy protokołów z interfejsami API i jak dostawcy sprzętu zapisują sterowniki sieciowe do pracy ze sterownikami protokołów. Zapoznaj się również z nowymi funkcjami sieci Win2K, w tym deserializowanymi sieciami NDIS i ATM.

Przeczytaj "Inside NT Networking" i inne poprzednie kolumny NT Internals on-line pod adresem http://www.sysinternals.com/publ.htm.

CZERWIEC "NT INTERNALS"

Czerwcowa odsłona mojej kolumny Magazynu Windows NT to "Inside EFS, Part 1". W tym artykule opisano architekturę systemu szyfrowania plików (EFS) firmy Microsoft i przedstawiono szczegółowy przewodnik po krokach szyfrowania plików w przypadku szyfrowania pliku. System EFS zapewnia przezroczyste szyfrowanie dla dysków NTFS Win2K i firma Microsoft opracowała ją specjalnie, aby rozwiązać problem z możliwością odczytywania plików NTFS bez względu na ich bezpieczeństwo. Ta kolumna będzie dostępna w wierszu w ciągu trzech miesięcy.

Dwa biuletyny temu mówiłem o tym, jak interfejsy API EFS niezbędne do tworzenia kopii zapasowych i przywracania zaszyfrowanych plików są nieudokumentowane. Niestety te interfejsy API nadal nie są udokumentowane w bieżącej wersji MSDN. Jednak poinformowano mnie, że firma Microsoft wysyła dokumentację oznaczoną jako "Poufne firmy Microsoft" partnerom i dostawcom oprogramowania do tworzenia kopii zapasowych. Ponadto David Golds, Menedżer programów systemów plików w firmie Microsoft, przedstawił rozmowę na temat ulepszeń systemu plików Win2K na niedawnej konferencji Microsoft TechEd w Dallas. W prezentacji slajdy, dla których można wyświetlić on-line w http://www.teched99.com/slides/1-337.pptwitrynie , wspomina, że interfejsy API kopii zapasowych są nieudokumentowane, ale można go usterek użyć do dokumentacji. Niestety jego adres e-mail nie znajduje się na slajdach.

Odwiedź stronę, aby uzyskać http://www.winntmag.com informacje o subskrypcji magazynu Windows NT.

NTFROB STAN AKTUALIZACJI

NTFrob to narzędzie wydane kilka lat temu, które pozwala precyzyjnie skonfigurować długości kwantowe procesów pierwszego planu i w tle na NT 4.0. NTFrob modyfikuje struktury danych wewnętrzne w jądrze NT, więc jest wysoce specyficzne dla dodatku Service Pack. Od wersji NT 4.0 z dodatkiem Service Pack 5 zostałem odłączony od zapytań z pytaniem, kiedy zamierzam wydać NTFrob v1.5, aktualizacja SP 5. Odpowiedź brzmi, że aktualizacja jest zbliżająca się — czekam, aż firma Microsoft udostępni subskrybentom MSDN z dodatkiem SP5, w tym informacje o debugowaniu. Wymagam informacji debugowania, aby zaktualizować NTFrob dla nowych dodatków Service Pack.

Możesz pobrać NTFrob dla NT 4 SP0-4 pod adresem http://www.sysinternals.com/ntfrob.htm.

NIE TAK NOWE RZECZY

Kilka miesięcy temu wydałem monitor portów szeregowych i równoległych Win9x/NT/2K w systemach wewnętrznych. Portmon pozwala zobaczyć dokładnie, jak aplikacje współdziałają z portami szeregowymi i równoległymi, w tym z danymi, które wysyłają i odbierają. Służy do oglądania sesji wybierania numerów, połączeń szeregowych laplink lub działania drukarki. Portmon był ogromnym hitem, a ostatnio zdobył 5 gwiazdek z Ziff-Davis Software Library, najwyższą ocenę możliwe. Inne narzędzia systemów wewnętrznych, które zdobyły 5 gwiazdek, to Regmon, NTFSDOS i BlueSave.

Pobierz portmon pod adresem http://www.sysinternals.com/portmon.htm.

WIADOMOŚCI WEWNĘTRZNE

STEROWNIKSTUDIO WYDANY

NuMega Labs firmy CompuWare wydała program DriverStudio, kompleksowy zestaw narzędzi dla deweloperów sterowników urządzeń z systemem Windows 9x/NT/2K. Obejmuje oprogramowanie SoftICE 4.0, BoundsChecker for Drivers, VtoolsD, DriverAgent, DriverWorks, FieldAgent for Drivers, a w przyszłości doda wartość TrueTime dla sterowników i trueCoverage dla sterowników. Podobnie jak powiedziałem w ostatnim biuletynie, jest to zestaw narzędzi dla deweloperów. NuMega uruchomiła również witrynę internetową zorientowaną na dewelopera sterowników urządzeń o nazwie "Driver Central" - http://www.numega.com/drivercentral/default.asp.

ZESTAW SDK PLATFORMY CZERWCA WYDANY

Możesz pobrać czerwcowy zestaw SDK platformy firmy Microsoft teraz pod adresem http://www.msdn.microsoft.com/developer/sdk/platform.asp.

FUNKCJA OCHRONY PLIKÓW SYSTEMU WIN2K (SFP)

Jednym z największych chwytów administratorów systemów NT i użytkowników jest NT "DLL Hell". Dll hell jest wynikiem wielu aplikacji aktualizujących kluczowe biblioteki DLL systemu z wersjami, które łączą. Aplikacje zazwyczaj to robią, aby zagwarantować, że działają prawidłowo, jednak w przypadku zastąpienia biblioteki DLL wiele razy przerywają działanie innych aplikacji przez zainstalowanie niezgodnych wersji, a nawet "zaktualizowanie" biblioteki DLL do starszej wersji.

Firma Microsoft rozwiązała problemy z przechowywaniem wersji bibliotek DLL w systemie Win2K wraz z wprowadzeniem funkcji ochrony plików systemowych (SFP). W rzeczywistości jego nazwa wkrótce zmieni się na Funkcja ochrony plików systemu Windows (WFP), ale od wersji Beta 3 (kompilacja 2031) nadal jest SFP. SFP jest implementowany w dll o nazwie sfc.dll, który proces Winlogon (winlogon.exe) jest ładowany podczas rozruchu systemu. SFP zawiera wbudowaną listę około 3000 bibliotek DLL systemu Win2K, plików wykonywalnych (exe), plików instalacyjnych (inf), sterowników (.sys) i czcionek (.fon) zainstalowanych w różnych katalogach 30-40. Gdy SFP inicjuje, wykonuje operację katalogu powiadamiania o zmianie w każdym katalogu zawierającym pliki, które chroni. Gdy wykryje manipulowanie plikiem, zostanie wyświetlone okno dialogowe informujące bieżącego użytkownika, zapisuje plik nawet w dzienniku zdarzeń i zastępuje zmodyfikowany plik kopią zapasową przechowywaną w folderze %systemroot%\system32\dllcache. Jeśli brakuje pliku kopii zapasowej, którego szuka SFP w usłudze dllcache lub został on również naruszony, SFP pobiera nową kopię z nośnika instalacyjnego Win2K.

Aby zobaczyć, jakie pliki chroni SFP, możesz użyć narzędzia Strings wymienionego gdzie indziej w tym biuletynie, aby zrzucić nazwy ciągów Unicode osadzone w folderze %systemroot%\system32\sfc.dll.

Jedynymi narzędziami, które mogą aktualizować pliki systemowe, są hotfix.exe, dodatki Service Pack (update.exe), instalacje uaktualnień i usługa aktualizacji Win2K. Jak te narzędzia pomijają protokół SFP? Tymczasowo ją wyłączają, wywołując wyeksportowaną funkcję sfc.dll SfcTerminateWatcherThread i upewniając się, że odzwierciedlają aktualizacje w podkatalogu dllcache. Należy pamiętać, że win2K wymaga, aby wszystkie pliki systemowe były podpisane cyfrowo przez firmę Microsoft, więc ogólnie nie można zaktualizować pliku systemowego przy użyciu dowolnej wersji własnej.

Programy Win32 mogą obserwować zmiany w katalogu przy użyciu interfejsów API FindFirstChangeNotification i FindNextChangeNotification Win32. Jednak te interfejsy API po prostu informują aplikację, że coś się zmieniło; nie informują aplikacji dokładnie o tym, co się zmieniło. W związku z tym aplikacja jest wymagana do skanowania całego katalogu w celu określenia, które pliki lub podkatalogi mogły ulec zmianie. SFP używa natywnego interfejsu API NT do wykonywania żądania powiadomienia o zmianie, w którym NT informuje, jakie pliki lub podkatalogi zmieniają się w monitorowanych katalogach. Funkcja SFP używa nazwy NtNotifyChangeDirectoryFile i, podobnie jak 90% natywnego interfejsu API NT, jest nieudokumentowana. Poszukaj apletu w systemach wewnętrznych w najbliższej przyszłości, który pokazuje, jak używać NtNotifyChangeDirectoryFile.

Moja września kolumna "NT Internals", "Inside Win2K Reliability Enhancements, Part 2" opisuje SFP bardziej szczegółowo.

ZAMYKANIE PLIKÓW OTWARTYCH Z SIECI

Jednym z najczęściej zadawanych pytań, które otrzymuję od użytkowników wewnętrznych systemów, jest "jak mogę zamknąć pliki, które użytkownicy mają otwarte z sieci?" Jeśli użytkownik ma zdalnie otwarty plik lub katalog, nie można usunąć, zmienić nazwy lub zaktualizować pliku lub katalogu lokalnie. Podobne pytanie brzmi: "Jak mogę zobaczyć, jakie pliki użytkownicy otworzyli z sieci?" Oba te pytania są odpowiedzią na narzędzie wiersza polecenia Net, które jest dostarczane z systemem Windows NT/2K. Aby zobaczyć, jakie pliki są otwierane, po prostu wpisz "net file". Uzyskasz listę otwartych nazw plików, odpowiednie identyfikatory nazw plików oraz nazwy użytkowników, którzy mają otwarte pliki. Aby zamknąć jeden z wyświetlonych plików, wpisz polecenie net file <id> /close. Aby wyświetlić otwarte pliki lokalnie, możesz użyć narzędzi NTHandle lub HandleEx.

Interfejsy API, które zastępują funkcje wyświetlania i zamykania pliku net polecenia, są udokumentowane w zestawie SDK platformy i w bibliotece MSDN. Użyj interfejsu API NetFileEnum, aby wyliczyć otwarte pliki i interfejs API NetFileClose, aby zamknąć otwarty plik. Interfejsy API umożliwiają wyliczanie otwartych plików na serwerach zdalnych, co nie jest dozwolone przez polecenie Net.

NTHandle jest dostępny na stronie http://www.sysinternals.com/nthandle.htm. HandleEx jest dostępny pod adresem http://www.sysinternals.com/handleex.htm.

CO SIĘ DZIEJE

INTERFEJS API "AWE"-SOME WIN2K

Win2K wprowadza nowy interfejs API o nazwie AWE (rozszerzenia okien adresowych), którego aplikacje intensywnie korzystające z pamięci mogą używać do bezpośredniego uzyskiwania dostępu do dużej ilości fizycznej pamięci RAM i zarządzania nimi — nawet ponad 3 GB, górnego limitu pamięci RAM, którą aplikacja systemu Windows NT może rozwiązać w wirtualnej przestrzeni adresowej. W rzeczywistości, jeśli system x86 ma PSE (rozszerzenia rozmiaru strony) i więcej niż 4 GB pamięci RAM, aplikacja może używać AWE do korzystania ze wszystkich pamięci komputera. Ten interfejs API jest zatem idealny dla aplikacji z głodem pamięci, takich jak serwery sieci Web i serwery baz danych. Następnym razem powiem, jak używać interfejsów API zarówno z aplikacji Win32, jak i sterowników urządzeń.

Chociaż jestem na temat aplikacji głodnych pamięci, oto wskazówka dla każdego, kto pisze aplikację, która buforuje pliki (na przykład serwer sieci Web). Menedżer pamięci podręcznej Systemu Windows NT dzieli pamięć podręczną na gniazda 256 KB o nazwie "views". Jeśli plik o rozmiarze mniejszym niż 256 KB jest buforowany, Menedżer pamięci podręcznej nadal musi przypisać plik całe miejsce 256 KB, co oznacza, że część pamięci wirtualnej pamięci podręcznej jest marnowana. W związku z tym wydajność jest ogólnie wydajniejsza, aby buforować pliki o rozmiarze mniejszym niż 256 KB w pamięci wirtualnej własnej aplikacji i polegać na systemie plików buforowania plików o rozmiarze większym niż 256 KB. Usługi IIS 5.0 używają tej sztuczki.


Dziękujemy za przeczytanie biuletynu Systems Internals.

Opublikowana sobota, 19 czerwca 1999 19:14 pm przez ottoh

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