Windows-informazioni riservate: La chiave misteriosa

Alcune impostazioni non sono mai voluti essere modificato o manipolato. Quando ne viene individuata una, si consiglia di lasciarla invariata.

Raymond Chen

"Perché il sistema agisce divertente quando modifico questa chiave del registro di sistema senza documenti?" Che mai è il tipo di domanda che vuoi sentire.

Un cliente una volta osservato che un particolare oggetto checkbox sembrava essere associato a una chiave di registro privi di documenti particolari. Perché il cliente ha voluto controllare tale casella di controllo a livello di programmazione, ha scritto uno script per modificare quella chiave, ma poi il sistema ha iniziato a comportarsi in modo strano. Immaginate che.

"Se comincio con la chiave impostata a 0 e impostare manualmente a 1, quando vado in pannello di controllo, dimostra la casella di controllo selezionata, ma il sistema si comporta come se la casella di controllo è ancora selezionata. Ancora più strano; Se si tenta di attivare o disattivare la casella di controllo dal pannello di controllo, esso non passare. Rimane controllato. Apprezzerei il vostro contributo."

A volte persone così impigliarsi nel descrivere il loro problema che si dimentica di chiedere una domanda. In questo caso, il cliente ha descritto tutte le cose che hanno fatto e quello che hanno osservato. Tuttavia, egli non ha effettivamente dichiarare che tipo di aiuto ha bisogno. Uno sviluppatore leggendo questo potrebbe dire, "che ha un senso," o, eventualmente, "mio, che una storia interessante."

Supponiamo che la domanda è: "Mi potete aiutare sviluppare un modo per controllare la casella di controllo a livello di codice? Modifica il registro di sistema non sembra funzionare."

Non modificare

Beh, la chiave di registro in questione è documentata per un motivo: Modifica diretta non è supportato. Modifica diretta provoca stati interni ottenere fuori sincrono. Poi si ottiene un comportamento strano come quello descritto dal cliente.

Si consideri che sei in un ristorante di lusso. Questo ristorante di lusso mantiene una copia master del menu quotidiano in cucina. All'inizio della giornata, ogni cameriere e cuoco Guarda il menu e si impegna a memoria. A volte, l'executive chef farà una modifica al menu in pieno giorno. Quando lo fa, lei racconta il personale e quindi ognuno conosce e rimane in accordo. "Abbiamo esaurito halibut, così gratta l'halibut per il resto della serata". In questo modo, i camerieri non offrono agli ospiti piatti che non esistono.

Menu che è come il registro di sistema. Supponiamo che un cliente si intrufola nella cucina, tira fuori una penna, attraversa fuori filet mignon e scrive New York bistecca, poi torna in sala da pranzo e cerca di ordinare il New York bistecca. (Forse il cliente cambia anche il prezzo da $45 a $35 per buona misura.)

Il cameriere si dirà, "mi dispiace, Signore, ma noi non hanno oggi bistecca di New York. Posso suggerire il filet mignon?"

Poi il cliente dice: "ti sbagli. Oggi hai bistecca di New York. Tornare in cucina e guardare il menu principale. Vedrai che c'è. Questo ristorante aspetta personale procedure sono chiaramente difettose."

Il menu principale in cucina non è documentato. Come il cliente sa circa il menu principale? I clienti di apportare modifiche al menu principale è un comportamento totalmente non supportata. Solo perché attraversare fuori filet mignon e scrivere New York bistecca non significa New York bistecca apparirà improvvisamente in cucina.

Il cameriere mai nemmeno visto il cambiamento del cliente perché il cameriere memorizzata dal menu all'inizio della giornata e non avesse guardato il menu principale da allora. Non era necessario, perché lo chef esecutivo non fare qualsiasi modifica di menu annunci. Il cliente dovrebbe essere gettato fuori dal ristorante e chiesto mai di tornare.

La gente dal team di compatibilità di applicazione sarebbe probabilmente leggere questo ed esclamare: "Oh come vogliamo quella parte ultima dell'analogia riportati nel software!" Alcune cose semplicemente non sono destinate ad essere modificato o manipolato. A volte, devi solo lasciare solo le cose.

Raymond Chen's

Raymond Chen  Sito Web, The Old New Thing e in modo identico titolo libro (Addison-Wesley, 2007) affrontare la storia di Windows, programmazione Win32 e trading caramella.

Contenuti correlati