I know what opaque means, in general, but not applying to any data structure.
I think ambiguous would have been a more appropriate term, but then
that applies to most of Microsoft’s documentation.
Subject: Re: What is an opaque data structure?
From: xxxxx@garlic.com
Date: Mon, 7 May 2007 19:32:08 -0700 (PDT)
X-Message-Number: 58
I just did the search and here is the definition -
http://www.m-w.com/dictionary/opaque
It is anything but thickheaded :-).
It means, it could change anytime .
An opaque window means you can’t see into it. I think the same applies to
opaque structures. Even if Microsoft provides the definition via headers or
even the ‘dt’ command in windbg, you should not use it directly but only
through supported interfaces. If you ‘break the window’ so that you can
read and/or write pieces directly you should expect it to fail on different
versions of the OS and with any other type of update. They are only
promising you that they guarantee nothing about what may happen. Sometimes
these structures have been so abused by others, they don’t have much luck in
making changes, but does your company want to depend upon that continuing?
–
David J. Craig
Engineer, Sr Staff Software Systems
Broadcom Corporation
“Tony Cappellini” wrote in message news:xxxxx@ntdev…
>I know what opaque means, in general, but not applying to any data
>structure.
> I think ambiguous would have been a more appropriate term, but then
> that applies to most of Microsoft’s documentation.
>
> Subject: Re: What is an opaque data structure?
> From: xxxxx@garlic.com
> Date: Mon, 7 May 2007 19:32:08 -0700 (PDT)
> X-Message-Number: 58
>
> I just did the search and here is the definition -
>
> http://www.m-w.com/dictionary/opaque
>
> It is anything but thickheaded :-).
>
> It means, it could change anytime .
>
Opaque data structures are best described in C++:
struct foo
{
private:
m_field1;
m_field2;
};
In C they are either opaque by convention: ‘please do not access any fields
in this structure’ or by only exporting a definition of a pointer to the
structure, not the structure itself:
typedef struct _FLT_VOLUME *PFLT_VOLUME;
Where _FLT_VOLUME is not defined. Note that in this case you cannot compute
the size of the pointed to object (unlike the C++ version) but then again
the size can actually change and your code doesn’t need to recompile.
A partially opaque structure is once again much more clearly defined in C++
while in C its definition is by convention only, as in ‘a file object is
partially opaque’ (so please only use these fields …).
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:bounce-285939-
xxxxx@lists.osr.com] On Behalf Of Tony Cappellini
Sent: Tuesday, May 08, 2007 1:08 AM
To: Windows System Software Devs Interest List
Cc: xxxxx@garlic.com
Subject: Re:[ntdev] ntdev digest: May 07, 2007
I know what opaque means, in general, but not applying to any data
structure.
I think ambiguous would have been a more appropriate term, but then
that applies to most of Microsoft’s documentation.
Subject: Re: What is an opaque data structure?
From: xxxxx@garlic.com
Date: Mon, 7 May 2007 19:32:08 -0700 (PDT)
X-Message-Number: 58
I just did the search and here is the definition -
http://www.m-w.com/dictionary/opaque
It is anything but thickheaded :-).
It means, it could change anytime .
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer