On Thu, Apr 7, 2011 at 12:26 AM, dmex <dmex04(a)gmail.com> wrote:
What's wrong with current method of using the
memory mapped 'DBWIN_BUFFER'
file for outputting kernel messages?
Nothing wrong: it just doesn't exist.
Two or three different kernel implementations
No any implementation to store kernel debug messages, the only one I
know is the dmesg kernel patch I talked about
(issue 6018)
for the same thing
Please point me the same
thing. Two or three implementations.
breaks compatibility with existing applications like
Dbgview.
What compartability did you mean?
The *only* mention about "DBWIN_BUFFER" was in
\dll\win32\kernel32\debug\output.c:266, the line:
==
hDBMonBuffer = OpenFileMappingW(SECTION_MAP_WRITE, FALSE, L"DBWIN_BUFFER");
==
So, as far as I see, Opening FileMapping without Creating it first,
could not work.
--
But even that is not such important. Any bugs, errors occurred during
that process of printing into that MappedView associated with
"DBWIN_BUFFER" FileMapping
are reported to kernel with DbgPrint.
Where should these errors be stored?
===
Why specific service is needed. Well, here:
[
http://alter.org.ua/docs/nt_kernel/kdprint/ KdPrint/DbgPrint and
OutputDebugString behavior] at Alter's site,
and here:
[
http://www.codeproject.com/KB/winsdk/OutputDebugString.aspx?display=Print
Mechanism of OutputDebugString - CodeProject] the ready code sample,
they discuss internals and mechanism of OutputDebugString. So
definitely Windows too uses system call to read data from kernel debug
buffer.
As unices do so too.
And there is no other way.
Linux in past has such shared memory object, but practically, now, it
is overridden by the system call.
So my question remains
Subject: Advice required on User-mode to Kernel mode
call for
syslog(2) analog in ROS
Regards,
M.A.