Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: temporary rows inserted by a custom action forwarded to the session database over the action pipe, with the test package
Fixes#122.
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: reproduction, patch and test: NetWkstaGetInfo levels 100-102 for the local computer, the 32-bit word count, and a fixture run as 32-bit and 64-bit
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: version layer for its setup, expanded service paths, seeded services, 64-bit packages in the native engine, dism KB4019990, missing shell and event log calls
Every pointer move over a caption or border recalculated the client
area and erased and repainted the window and all its controls, so a
dialog flickered while the pointer moved over its title. Only a caption
button changes there, and only the frame is drawn again for it.
Fixes#123
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: reproduction under Xvfb, the fix to hover_frame, the native_frame_hover test and fixture
- GetIfEntry, GetIfTable and GetNumberOfInterfaces answer from the host's interfaces. GetIfEntry names one by the index the record handed in carries, GetIfTable puts the rows behind a count, and a table that does not fit is refused with ERROR_INSUFFICIENT_BUFFER and the size it needs.
- The interface walk moved out of host_api.cpp into interfaces.cpp, so the records GetAdaptersAddresses reports and the rows these calls report come from one enumeration of the host rather than two.
- interfaces_test checks the record against the MIB_IFROW offsets Windows declares and the cutting of a long name. The new guest fixture interface_client.c reads the tables through the runtime, in 64-bit and 32-bit builds: it checks that the count, the rows and GetIfEntry agree, that a sorted table lists the rows by index, and that an unknown index and a short table fail as Windows fails them.
Assisted-by: Claude Code:deepseek-v4.1-flash-1017
AI-Scope: Read the MIB_IFROW and MIB_IFTABLE layouts, moved the interface enumeration into interfaces.cpp, wrote the three handlers and both tests, and checked them with ctest (native_interface_table_contract, native_interface_table_client, native_interface_table_client_x32).
- native/upstream/raven-media builds avrt.dll and mfplat.dll for both widths and the runtime ships them beside itself: a media library imports both, and without mfplat.dll such a library does not load at all. cri_ware_unity.dll is one, and the program that imports it stopped before its first frame.
- avrt.dll answers the multimedia task calls with a stand-in handle. Nothing here schedules threads, so a program that asks for a task is one that raises its own priority and keeps its own period; the calls made with the handle are answered as they would be for a granted task.
- mfplat.dll answers the four factories with E_NOTIMPL rather than an object with no implementation behind it, which would fail every later call far from the request that started it.
- The new guest fixture media_client.c imports both libraries the way a media library does, and checks the task handle, its priority, its responsiveness and that each factory reports the interface as unsupported. It is built for both widths.
Assisted-by: Claude Code:deepseek-v4.1-flash-1017
AI-Scope: Wrote the two guest components from the multimedia and Media Foundation interfaces they answer, wired them into the component build and the runtime component list, and checked them with ctest (native_media_x64, native_media_x32).
- Both calls read the host's protocols database into one PROTOENT the process reuses, as Winsock reuses its per-thread one: the name, an empty list of aliases and the protocol number.
- The record keeps its pointers, so the 32-bit and 64-bit layouts are written apart; a protocol the database does not list answers NULL with WSANO_DATA, as the services calls beside them do.
- The new guest fixture protocol_client.c checks that both spellings of a protocol name the same record, that a second call reuses it, and that an unlisted name and an unlisted number are refused. It is built for 64-bit and 32-bit callers.
Assisted-by: Claude Code:deepseek-v4.1-flash-1017
AI-Scope: Wrote the two handlers next to the existing getservbyname ones, the PROTOENT writer for both pointer widths, and the guest fixture; checked with ctest (native_protocol_database_client, native_protocol_database_client_x32).