windows-nt/Source/XPSP1/NT/base/fs/srv/rawmpx.h
2020-09-26 16:20:57 +08:00

131 lines
2.3 KiB
C

/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
rawmpx.h
Abstract:
This module defines structures and routines common to raw and
multiplexed mode processing.
Author:
Chuck Lenzmeier (chuckl) 30-Sep-1990
Revision History:
--*/
#ifndef _RAWMPX_
#define _RAWMPX_
//#include <ntos.h>
//#include <smb.h>
//#include "smbtypes.h"
//#include "srvblock.h"
//
// Common (raw and mpx) routines, callable from both FSD and FSP.
// Implemented in fsdraw.c.
//
// SrvFsdBuildWriteCompleteResponse can be called from a DISPATCH_LEVEL
// only if Status == STATUS_SUCCESS.
//
VOID
SrvFsdBuildWriteCompleteResponse (
IN OUT PWORK_CONTEXT WorkContext,
IN NTSTATUS Status,
IN ULONG BytesWritten
);
VOID SRVFASTCALL
RestartMdlReadRawResponse (
IN OUT PWORK_CONTEXT WorkContext
);
//
// Raw mode routines callable from both FSD and FSP. Implemented in
// fsdraw.c.
//
VOID SRVFASTCALL
SrvFsdRestartPrepareRawMdlWrite (
IN OUT PWORK_CONTEXT WorkContext
);
VOID SRVFASTCALL
SrvFsdRestartWriteRaw (
IN OUT PWORK_CONTEXT WorkContext
);
//
// Raw mode routines called only in FSD, but referenced in FSP.
// Implemented in fsdraw.c.
//
VOID SRVFASTCALL
SrvFsdRestartReadRaw (
IN OUT PWORK_CONTEXT WorkContext
);
//
// Raw mode routines called only in FSP, but referenced in FSD, or in
// modules other than smbraw.c. Implemented in smbraw.c.
//
VOID SRVFASTCALL
SrvBuildAndSendWriteCompleteResponse (
IN OUT PWORK_CONTEXT WorkContext
);
VOID SRVFASTCALL
SrvDecrementRawWriteCount (
IN PRFCB Rfcb
);
VOID SRVFASTCALL
SrvRestartRawReceive (
IN OUT PWORK_CONTEXT WorkContext
);
VOID SRVFASTCALL
SrvRestartReadRawComplete (
IN OUT PWORK_CONTEXT WorkContext
);
VOID SRVFASTCALL
SrvRestartWriteCompleteResponse (
IN OUT PWORK_CONTEXT WorkContext
);
//
// Special receive restart routine for Write Mpx.
//
VOID SRVFASTCALL
SrvRestartReceiveWriteMpx (
IN OUT PWORK_CONTEXT WorkContext
);
//
// Write glomming during indication
//
BOOLEAN
AddPacketToGlomInIndication (
IN PWORK_CONTEXT WorkContext,
IN OUT PRFCB Rfcb,
IN PVOID Tsdu,
IN ULONG BytesAvailable,
IN ULONG ReceiveDatagamFlags,
IN PVOID SourceAddress,
IN PVOID Options
);
#endif // def _RAWMPX_