Tudo isso é um problema curioso após a atualização dos criadores (1703) (OS Build 15063.413) no HP Elitebook 8760w. Defragment and Optimize drives
não será lançado. Por exemplo, clicar em Start menu -> Microsoft Administrative Tools -> Defragment and Optimize Drives
não faz nada. Com o gerenciador de tarefas aberto, é evidente que nenhum processo foi iniciado. (ou não roda o suficiente para se registrar) Além disso, abrir um console de administrador e executar dfrgui.exe
também não faz nada.
Espero que alguém tenha algumas reflexões sobre como depurar ainda mais o problema. A partir do rastreio do kernel executado abaixo, a tentativa de lançar dfrgui.exe
resulta em um ExitStatus 259 e ErrorCode 15005 aparentemente apontando para dados de evento que não correspondem ao modelo fornecido no manifest ?? Desfragmentar e otimizar unidades funcionou muito bem ontem de manhã antes da atualização, agora nada.
Eu atualizei para o KB4022716 (OS Build 15063.447) do catálogo de atualização - sem ajuda (ele corrigiu muitos outros problemas na primeira versão da atualização .413).
Aqui estão alguns diagnósticos sobre o que eu recebo da linha de comando, dfrgui - nada, defrag - OK:
PS C:\Users\david> dfrgui
PS C:\Users\david> write-host $?
True
PS C:\Users\david> dfrgui /?
PS C:\Users\david> dfrgui c:
PS C:\Users\david> defrag /?
Microsoft Drive Optimizer
Copyright (c) 2013 Microsoft Corp.
Description:
Optimizes and defragments files on local volumes to
improve system performance.
<snip>
Em um esforço adicional para reduzir o problema, criei um rastreio do kernel da tentativa de iniciar o dfrgui.exe com um arquivo em lote curto:
logman start "NT Kernel Logger" -p "Windows Kernel Trace" (process,thread,img,disk,net,registry) -o systemevents.etl -ets
dfrgui.exe
logman stop "NT Kernel Logger" -ets
Em seguida, processei o arquivo de eventos, systemevents.etl , (5.5M) com tracerpt systemevents.etl
, que criou uma enorme 46M dumpfile.xml
. Eu revi o dumpfile e o emparelhei com os eventos inicial e final relacionados a dfrgui.exe
(que felizmente é apenas 428K). No entanto, não sou nenhum assistente na interpretação do rastreamento do kernel da janela. Ambos os arquivos são muito grandes para serem usados aqui, mas posso disponibilizar outras partes se elas ajudarem.
O conjunto de dados do evento que se destacou foi:
<EventData>
<Data Name="UniqueProcessKey">0xFFFFA008A692A2C0</Data>
<Data Name="ProcessId">0xFCC</Data>
<Data Name="ParentId">0x25F8</Data>
<Data Name="SessionId"> 1</Data>
<Data Name="ExitStatus">259</Data>
<Data Name="DirectoryTableBase">0x1EAF8A000</Data>
<Data Name="Flags"> 0</Data>
<Data Name="UserSID">\ELITE\david</Data>
<Data Name="ImageFileName">dfrgui.exe</Data>
<Data Name="CommandLine">dfrgui.exe</Data>
<Data Name="PackageFullName"></Data>
<Data Name="ApplicationId"></Data>
</EventData>
Olhando, o próximo evento é importante no que se refere ao processamento do erro:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Guid="{9e814aad-3204-11d2-9a82-006008a86939}" />
<EventID>0</EventID>
<Version>3</Version>
<Level>0</Level>
<Task>0</Task>
<Opcode>1</Opcode>
<Keywords>0x0</Keywords>
<TimeCreated SystemTime="2017-07-02T00:16:57.024179100-0500" />
<Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" />
<Execution ProcessID="9720" ThreadID="11156" ProcessorID="2" KernelTime="45" UserTime="15" />
<Channel />
<Computer />
</System>
<ProcessingErrorData>
<ErrorCode>15005</ErrorCode>
<DataItemName />
<EventPayload>CC0F0000082800000040659081D9FFFF00E0649081D9FFFF0000C8987A00000000E0C7987A0000000F000000000000008020DDE7F77F000000B0B8987A00000000000000080502000000</EventPayload>
</ProcessingErrorData>
<RenderingInfo Culture="en-US">
<Opcode>Start</Opcode>
<Provider>MSNT_SystemTrace</Provider>
<EventName xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">Thread</EventName>
</RenderingInfo>
<ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
<EventGuid>{3d6fa8d1-fe05-11d0-9dda-00c04fd7ba7c}</EventGuid>
</ExtendedTracingInfo>
</Event>
O código de erro 15005
é:
ERROR_EVT_INVALID_EVENT_DATA
15005 (0x3A9D)
The event data raised by the publisher is not compatible
with the event template definition in the publisher's manifest.
(de acordo com: link )
Eu suspeito que a resposta está enterrada na longa seqüência de bytes contida no postado como parte do rastreio do kernel. (que é algo que não tenho ideia de como decodificar).
Eu acho o ExitStatus 259 um pouco irônico dado:
"Important The GetExitCodeProcess function returns a valid error code
defined by the application only after the thread terminates.
Therefore, an application should not use STILL_ACTIVE (259) as an
error code. If a thread returns STILL_ACTIVE (259) as an error code,
applications that test for this value could interpret it to mean that
the thread is still running and continue to test for the completion of
the thread after the thread has terminated, which could put the
application into an infinite loop."
Consulte: link
Alguém tem alguma idéia adicional sobre o que eu posso tentar obter dfrgui.exe em execução? Se não, existem outros diagnósticos que eu poderia fazer? Eu publiquei para o conselho de respostas da Microsoft, mas até agora, eu recebi apenas um "Eu também" para o problema e sugestões para reverter. (que, como parece ser o único problema que conheço, dificilmente torna o risco de uma reversão atraente). O que tentar em seguida? Deixe-me saber se há algo mais que eu possa postar que possa ajudar.
Por sugestão do Biswa, depois de procurar descrições de opções adicionais para defrag.exe
para garantir que as operações estavam corretas para o meu SSD, tentei fazer um ajuste manual com ele. Parece que dfrag.exe
não está fazendo nada além de iniciar e sair sem mais. Exemplo,
PS C:\Users\david\Documents\dev\gtk\gtkwrite> defrag /C /H /O /V
Microsoft Drive Optimizer
Copyright (c) 2013 Microsoft Corp.
PS C:\Users\david\Documents\dev\gtk\gtkwrite> write-host $?
True
Portanto, parece que defrag
não está fazendo nada além de imprimir os direitos autorais e sair. Eu também tentei com C: /A /V
para fazer com que ele analisasse C
especificamente, mas não importa o que eu tente, simplesmente imprime os direitos autorais e sai.
Eu executei outro rastreio do kernel no defrag.exe e a saída é virtualmente idêntica ao dfrgui.exe. Mesmo 259 ExitStatus. O EventPayload no evento após o ExitStatus defrag.exe era:
<EventPayload>B4090000EC2B000000C0430081D6FFFF0060430081D6FFFF00003802BC00000000E03702BC0000000F0000000000000060B0E1B7F77F000000B04102BC00000000000000080502000000</EventPayload>