Поделиться через


MAPHEADER (Windows Embedded CE 6.0)

1/6/2010

This structures stores header information on a shared memory buffer.

Syntax

typedef struct _MAPHEADER {
    //
    // VERSION 1 DATA
    DWORD  dwBufSize;
    LPBYTE pWrite;
    LPBYTE pRead;
    BOOL   fSetEvent;
    BYTE   bReserved;
    DWORD  dwLostBytes;
    //
    // VERSION 2 DATA
    DWORD  dwVersion;
    DWORD  dwBufferStart;
    DWORD  dwWriteOffset;
    DWORD  dwReadOffset;
} MAPHEADER, *PMAPHEADER;

Members

  • dwBufSize
    Size of the data buffer. This does not include the size of the header.
  • pWrite
    Pointer to the next location to be written in the buffer.

    Valid for Version 1 of this structure. This pointer will be NULL for version 2 and later.

  • pRead
    Pointer to the next location to read from.

    Valid for Version 1 of this structure. This pointer will be NULL for version 2 and later.

  • fSetEvent
    Flag indicating whether the fill event can be set.

    The writer sets this value to FALSE; the reader sets this value to TRUE.

  • bReserved
    Unused padding for DWORD alignment.
  • dwLostBytes
    Total number of lost bytes.

    This value is set by the writer and only read by the reader.

  • dwVersion
    Indicates the version of this structure.

    This value is 2 for Windows Embedded CE and later.

  • dwBufferStart
    Offset of buffer start from the beginning of the map.

    Valid for Version 2 of this structure.

  • dwWriteOffset
    Offset of write pointer from the beginning of the map. The writer moves this pointer.

    Valid for Version 2 of this structure.

  • dwReadOffset
    Offset of read pointer from the beginning of the map. The reader moves this pointer, followed by the data buffer. The data buffer starts at dwBufferStart and ends dwBufSize bytes beyond that.

    Valid for Version 2 of this structure.

Remarks

This structure specifies different members for different versions of Windows Embedded CE. Version 1 data applies to all versions of Windows Embedded CE.

** Windows Embedded CE 6.0 and later versions support version 2 data of the structure. Programming and diagnostic tools included with CE 6.0 and later are backward compatible; that is, tools that ship with CE 6.0 and later can be used to debug any published version of the operating system.

However, customized tools may need to incorporate appropriate modifications when used under CE 6.0 and later. Operating systems created using CE 6.0 and later use only version 2 of the MAPHEADER structure, and tools created for previous releases may not work as expected.

  • If you have an existing, customized, event-tracking DLL that is a replacement for celog.dll, then your DLL must expose version 2 of the MAPHEADER structure in order for tools like celogflush.exe and kernel tracker to read your data. Your DLL must set the pWrite and pRead members of the structure to NULL, and initialize the version 2 data members.
  • If you have an existing, customized, flushing tool that is a replacement for celogflush.exe, then your tool must be able to read version 2 of the MAPHEADER structure in order to get data from celog.dll. In version 2 of the structure, the pWrite and pRead members will be NULL.

If desired, you can write a tool that works with multiple OS versions by having the tool check pWrite, pRead, and dwVersion, then adapt accordingly.

Requirements

Header celog.h
Windows Embedded CE Windows CE .NET 4.0 and later

See Also

Reference

CeLog Event Tracking Structures

Other Resources

CeLog Buffering Scheme