Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
mmapstm.h
Abstract:
IStream over a memory-mapped file, derived (in the C++ sense) from RTL_MEMORY_STREAM. Note the semantics and implementation here of IStream::Stat are specialized for use by sxs.
Author:
Jay Krell (a-JayK) June 2000
Revision History:
--*/
#include "nturtl.h"
typedef struct _BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE { RTL_MEMORY_STREAM_WITH_VTABLE MemStream; HANDLE FileHandle; } BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE, *PBASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE;
VOID STDMETHODCALLTYPE BaseSrvInitMemoryMappedStream( PBASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE MmapStream );
VOID STDMETHODCALLTYPE BaseSrvFinalReleaseMemoryMappedStream( PRTL_MEMORY_STREAM_WITH_VTABLE MemStream );
//
// We mostly just inherit the RtlMemoryStream implementation.
// "Declare" that by providing names for our virtual member functions
// whose first parameter is of the correct type.
//
#define BaseSrvAddRefMemoryMappedStream \
((PRTL_ADDREF_STREAM1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlAddRefMemoryStream)
#define BaseSrvReleaseMemoryMappedStream \
((PRTL_RELEASE_STREAM1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlReleaseMemoryStream)
#define BaseSrvQueryInterfaceMemoryMappedStream \
((PRTL_QUERYINTERFACE_STREAM1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlQueryInterfaceMemoryStream)
#define BaseSrvReadMemoryMappedStream \
((PRTL_READ_STREAM1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlReadMemoryStream)
#define BaseSrvWriteMemoryMappedStream \
((PRTL_WRITE_STREAM1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlWriteMemoryStream)
#define BaseSrvSeekMemoryMappedStream \
((PRTL_SEEK_STREAM1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlSeekMemoryStream)
#define BaseSrvSetMemoryMappedStreamSize \
((PRTL_SET_STREAM_SIZE1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlSetMemoryStreamSize)
#define BaseSrvCopyMemoryMappedStreamTo \
((PRTL_COPY_STREAM_TO1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlCopyMemoryStreamTo)
#define BaseSrvCommitMemoryMappedStream \
((PRTL_COMMIT_STREAM1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlCommitMemoryStream)
#define BaseSrvRevertMemoryMappedStream \
((PRTL_REVERT_STREAM1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlRevertMemoryStream)
#define BaseSrvLockMemoryMappedStreamRegion \
((PRTL_LOCK_STREAM_REGION1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlLockMemoryStreamRegion)
#define BaseSrvUnlockMemoryMappedStreamRegion \
((PRTL_UNLOCK_STREAM_REGION1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlUnlockMemoryStreamRegion)
// override
HRESULT STDMETHODCALLTYPE BaseSrvStatMemoryMappedStream( PBASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE MmapStream, STATSTG* Stat, DWORD Flags );
#define BaseSrvCloneMemoryMappedStream \
((PRTL_CLONE_STREAM1(BASE_SRV_MEMORY_MAPPED_STREAM_WITH_VTABLE))RtlCloneMemoryStream)
|