mirror of https://github.com/tongzx/nt5src
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.
78 lines
2.1 KiB
78 lines
2.1 KiB
/*++
|
|
|
|
Copyright (c) 1989 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
smbmrxmm.h
|
|
|
|
Abstract:
|
|
|
|
This module implements the memory managment routines for the SMB mini redirector
|
|
|
|
Author:
|
|
|
|
Balan Sethu Raman [SethuR] 7-March-1995
|
|
|
|
Revision History:
|
|
|
|
Notes:
|
|
|
|
The SMB mini redirector manipulates entities which have very different usage patterns.
|
|
They range from very static entities ( which are allocated and freed with a very low
|
|
frequency ) to very dynamic entities.
|
|
|
|
The entities manipulated in the SMB mini redirector are SMBCE_SERVER, SMBCE_NET_ROOT,
|
|
SMBCE_VC, SMBCE_SESSION. These represent a connection to a server, a share on a particular
|
|
server, a virtual circuit used in the connection and a session for a particular user.
|
|
|
|
These are not very dynamic, i.e., the allocation/deallocation is very infrequent. The
|
|
SMB_EXCHANGE and SMBCE_REQUEST map to the SMB's that are sent along that a connection.
|
|
Every file operation in turn maps to a certain number of calls for allocationg/freeing
|
|
exchanges and requests. Therefore it is imperative that some form of scavenging/caching
|
|
of recently freed entries be maintained to satisfy requests quickly.
|
|
|
|
In the current implementation the exchanges and requests are implemented using the zone
|
|
allocation primitives.
|
|
|
|
--*/
|
|
|
|
#ifndef _SMBMRXMM_H_
|
|
#define _SMBMRXMM_H_
|
|
|
|
//
|
|
// Object Allocation and deletion
|
|
//
|
|
|
|
extern PVOID
|
|
SmbMmAllocateObject(SMBCEDB_OBJECT_TYPE ObjectType);
|
|
|
|
extern VOID
|
|
SmbMmFreeObject(PVOID pObject);
|
|
|
|
extern PSMBCEDB_SESSION_ENTRY
|
|
SmbMmAllocateSessionEntry(PSMBCEDB_SERVER_ENTRY pServerEntry, BOOLEAN RemoteBootSession);
|
|
|
|
extern VOID
|
|
SmbMmFreeSessionEntry(PSMBCEDB_SESSION_ENTRY pSessionEntry);
|
|
|
|
extern PVOID
|
|
SmbMmAllocateExchange(
|
|
SMB_EXCHANGE_TYPE ExchangeType,
|
|
PVOID pv);
|
|
|
|
extern VOID
|
|
SmbMmFreeExchange(PVOID pExchange);
|
|
|
|
extern PVOID
|
|
SmbMmAllocateServerTransport(SMBCE_SERVER_TRANSPORT_TYPE ServerTransportType);
|
|
|
|
extern VOID
|
|
SmbMmFreeServerTransport(PSMBCE_SERVER_TRANSPORT);
|
|
|
|
|
|
#define SmbMmInitializeHeader(pHeader) \
|
|
RtlZeroMemory((pHeader),sizeof(SMBCE_OBJECT_HEADER))
|
|
|
|
#endif _SMBMRXMM_H_
|
|
|