Freigeben über


Fehlerüberprüfung 0x3F: NO_MORE_SYSTEM_PTES

Die NO_MORE_SYSTEM_PTES Fehlerüberprüfung hat den Wert 0x0000003F. Dies ist das Ergebnis eines Systems, das zu viele E/A-Aktionen ausgeführt hat. Dies hat zu fragmentierten Systemseitentabelleneinträgen (PTE) geführt.

Wichtig

Dieser Artikel richtet sich an Programmierer. Wenn Sie ein Kunde sind, der während der Verwendung Ihres Computers einen Bluescreen-Fehlercode erhalten hat, finden Sie weitere Informationen unter Behandeln von Bluescreenfehlern.

NO_MORE_SYSTEM_PTES Parameter

Parameter BESCHREIBUNG

1

0: PTE-Typ der Systemerweiterung

1: PTE-Typ der nicht auslagerten Poolerweiterung

2

Größe der Arbeitsspeicheranforderung

3

Kostenlose System-PTEs insgesamt

4

System-PTEs insgesamt

Ursache

In fast allen Fällen ist das System nicht tatsächlich aus PTEs heraus. Vielmehr hat ein Treiber einen großen Speicherblock angefordert, aber es gibt keinen zusammenhängenden Block mit ausreichender Größe, um diese Anforderung zu erfüllen.

Häufig weisen Videotreiber große Mengen an Kernelspeicher zu, die erfolgreich sein müssen. Einige Sicherungsprogramme tun dies auch.

Lösung

Ein mögliches Work-Around: Ändern Sie die Registrierung, um die Gesamtzahl der System-PTEs zu erhöhen. Wenn dies nicht hilft, entfernen Sie alle kürzlich installierten Software, insbesondere Sicherungsprogramme oder datenträgerintensive Anwendungen.

Debuggen des Problems: Die folgende Methode kann zum Debuggen von Fehlerüberprüfungen 0x3F verwendet werden.

Rufen Sie zunächst eine Stapelablaufverfolgung ab, und verwenden Sie den Erweiterungsbefehl !sysptes 3 .

Legen Sie dann HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\TrackPtes gleich DWORD 1 fest, und starten Sie neu. Dies führt dazu, dass das System Stapelablaufverfolgungen speichert.

Dadurch können Sie ausführlichere Informationen zu den PTE-Besitzern anzeigen. Beispiel:

0: kd> !sysptes 4

0x2c47 System PTEs allocated to mapping locked pages

VA       MDL     PageCount  Caller/CallersCaller
f0e5db48 eb6ceef0        1 ntkrpamp!MmMapLockedPages+0x15/ntkrpamp!IopfCallDriver+0x35
f0c3fe48 eb634bf0        1 netbt!NbtTdiAssociateConnection+0x1f/netbt!DelayedNbtProcessConnect+0x17c
f0db38e8 eb65b880        1 mrxsmb!SmbMmAllocateSessionEntry+0x89/mrxsmb!SmbCepInitializeExchange+0xda
f8312568 eb6df880        1 rdbss!RxCreateFromNetRoot+0x3d7/rdbss!RxCreateFromNetRoot+0x93
f8363908 eb685880        1 mrxsmb!SmbMmAllocateSessionEntry+0x89/mrxsmb!SmbCepInitializeExchange+0xda
f0c54248 eb640880        1 rdbss!RxCreateFromNetRoot+0x3d7/rdbss!RxCreateFromNetRoot+0x93
f0ddf448 eb5f3160        1 mrxsmb!MrxSmbUnalignedDirEntryCopyTail+0x387/mrxsmb!MRxSmbCoreInformation+0x36
f150bc08 eb6367b0        1 mrxsmb!MrxSmbUnalignedDirEntryCopyTail+0x387/mrxsmb!MRxSmbCoreInformation+0x36
f1392308 eb6fba70        1 netbt!NbtTdiOpenAddress+0x1fb/netbt!DelayedNbtProcessConnect+0x17c
eb1bee64 edac5000      200 VIDEOPRT!pVideoPortGetDeviceBase+0x118/VIDEOPRT!VideoPortMapMemory+0x45
f139b5a8 edd4b000       12 rdbss!FsRtlCopyWrite2+0x34/rdbss!RxDriverEntry+0x149
eb41f400 ede92000       20 VIDEOPRT!pVideoPortGetDeviceBase+0x139/VIDEOPRT!VideoPortGetDeviceBase+0x1b
eb41f198 edf2a000       20 NDIS!NdisReadNetworkAddress+0x3a/NDIS!NdisFreeSharedMemory+0x58
eb41f1e4 eb110000       10 VIDEOPRT!pVideoPortGetDeviceBase+0x139/VIDEOPRT!VideoPortGetDeviceBase+0x1b
......

Wenn auf dem System nach dem Festlegen des TrackPtes-Registrierungswerts erneut ptEs ausgeführt werden, wird anstelle von 0x3F die Fehlerüberprüfung 0xD8 (DRIVER_USED_EXCESSIVE_PTES) ausgegeben. Der Name des Treibers, der diesen Fehler verursacht, wird ebenfalls angezeigt.