WAS: win32.ts kennt QueryDosDeviceW (am 12.09.2026 an diesem PC gemessen: C: → \Device\HarddiskVolume7, X: → \Device\LanmanRedirector\…\192.168.178.62\rippy); LaufwerkApi.geraeteName liefert das Kernel-Gerät hinter dem Buchstaben. beurteilen() filtert damit auf DIESES Gerät; ohne Gerätename zählt nur noch der cdrom-Treiber (gehoertZuLaufwerk). Vorher nahm der XPath cdrom UND disk für alle Geräte — eine hustende Festplatte oder ein zweites Laufwerk erzeugte „VERDACHT: DIE HARDWARE" in der Kachel des Blu-ray- Laufwerks. WARUM: Durchsicht 12.09.2026, Fund F11 — mit Tests (Festplatten- Ereignisse, zweites Laufwerk, ruhig mit Gerätename). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
54 lines
2.4 KiB
TypeScript
54 lines
2.4 KiB
TypeScript
// 5.7.0 (Durchsicht 12.09.2026, F11): Die Laufwerks-Gesundheit zählt nur die
|
|
// Ereignisse DIESES Laufwerks. Vorher nahm der XPath Provider cdrom UND
|
|
// disk für ALLE Geräte — eine hustende Festplatte (\Device\Harddisk1)
|
|
// erzeugte „VERDACHT: DIE HARDWARE" in der Kachel des Blu-ray-Laufwerks.
|
|
import { describe, expect, it } from 'vitest'
|
|
import { beurteilen, gehoertZuLaufwerk, type LaufwerkEreignis } from '../src/kern/laufwerk/ereignisse'
|
|
|
|
const e = (provider: string, id: number, geraet: string): LaufwerkEreignis => ({
|
|
zeit: '2026-09-02T18:32:00.000Z',
|
|
provider,
|
|
id,
|
|
geraet,
|
|
})
|
|
|
|
const PLATTE = e('disk', 11, '\\Device\\Harddisk1\\DR1')
|
|
const PLATTE_BLOCK = e('disk', 7, '\\Device\\Harddisk1\\DR1')
|
|
const CDROM0 = e('cdrom', 7, '\\Device\\CdRom0')
|
|
const CDROM1 = e('cdrom', 11, '\\Device\\CdRom1')
|
|
|
|
describe('gehoertZuLaufwerk', () => {
|
|
it('mit Gerätename zählt nur dieses Gerät', () => {
|
|
expect(gehoertZuLaufwerk(CDROM0, '\\Device\\CdRom0')).toBe(true)
|
|
expect(gehoertZuLaufwerk(CDROM1, '\\Device\\CdRom0')).toBe(false)
|
|
expect(gehoertZuLaufwerk(PLATTE, '\\Device\\CdRom0')).toBe(false)
|
|
// Groß/Klein ist Windows egal.
|
|
expect(gehoertZuLaufwerk(CDROM0, '\\device\\cdrom0')).toBe(true)
|
|
})
|
|
it('ohne Gerätename zählt nur der cdrom-Treiber — nie eine Festplatte', () => {
|
|
expect(gehoertZuLaufwerk(CDROM0, '')).toBe(true)
|
|
expect(gehoertZuLaufwerk(CDROM1, '')).toBe(true)
|
|
expect(gehoertZuLaufwerk(PLATTE, '')).toBe(false)
|
|
})
|
|
})
|
|
|
|
describe('beurteilen je Gerät', () => {
|
|
it('Controllerfehler der Festplatte beschuldigen nicht das Laufwerk', () => {
|
|
const bericht = beurteilen([PLATTE, PLATTE_BLOCK, CDROM0], 24, undefined, '\\Device\\CdRom0')
|
|
expect(bericht.urteil).toBe('disc')
|
|
expect(bericht.controllerfehler).toBe(0)
|
|
expect(bericht.fehlerhafteBloecke).toBe(1)
|
|
expect(bericht.letzte).toHaveLength(1)
|
|
})
|
|
it('ein zweites optisches Laufwerk zählt nicht mit', () => {
|
|
const bericht = beurteilen([CDROM1, CDROM0], 24, undefined, '\\Device\\CdRom0')
|
|
expect(bericht.urteil).toBe('disc')
|
|
expect(bericht.controllerfehler).toBe(0)
|
|
})
|
|
it('nur Festplatten-Ereignisse → für das Laufwerk ist es ruhig, mit Gerätename im Text', () => {
|
|
const bericht = beurteilen([PLATTE, PLATTE_BLOCK], 24, undefined, '\\Device\\CdRom0')
|
|
expect(bericht.urteil).toBe('ruhig')
|
|
expect(bericht.text).toContain('\\Device\\CdRom0')
|
|
})
|
|
})
|