0x3F de Verificação de Bugs: NO_MORE_SYSTEM_PTES
O marcar de bugs NO_MORE_SYSTEM_PTES tem um valor de 0x0000003F. Esse é o resultado de um sistema que executou muitas ações de E/S. Isso resultou em PTE (entradas de tabela de páginas do sistema fragmentadas).
Importante
Este artigo é para programadores. Se você for um cliente que recebeu um código de erro de tela azul ao usar o computador, consulte Solucionar erros de tela azul.
Parâmetros de NO_MORE_SYSTEM_PTES
Parâmetro | Descrição |
---|---|
1 |
0: tipo PTE de expansão do sistema 1: tipo de PTE de expansão de pool nãopagado |
2 |
Tamanho da solicitação de memória |
3 |
Total de PTEs gratuitos do sistema |
4 |
Total de PTEs do sistema |
Causa
Em quase todos os casos, o sistema não está realmente fora dos PTEs. Em vez disso, um driver solicitou um grande bloco de memória, mas não há um bloco contíguo de tamanho suficiente para atender a essa solicitação.
Muitas vezes, os drivers de vídeo alocam grandes quantidades de memória de kernel que devem ser bem-sucedidas. Alguns programas de backup fazem o mesmo.
Resolução
Uma possível solução alternativa: Modifique o registro para aumentar o número total de PTEs do sistema. Se isso não ajudar, remova qualquer software instalado recentemente, especialmente utilitários de backup ou aplicativos com uso intensivo de disco.
Depurando o problema: O método a seguir pode ser usado para depurar marcar 0x3F de bugs.
Primeiro, obtenha um rastreamento de pilha e use o comando de extensão !sysptes 3 .
Em seguida, defina HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\TrackPtes igual a DWORD 1 e reinicialize. Isso fará com que o sistema salve rastreamentos de pilha.
Isso permite que você exiba informações mais detalhadas sobre os proprietários de PTE. Por exemplo:
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
......
Se o sistema ficar sem PTEs novamente depois que o valor do registro TrackPtes tiver sido definido, marcar 0xD8 de bug (DRIVER_USED_EXCESSIVE_PTES) será emitido em vez de 0x3F. O nome do driver que causa esse erro também será exibido.