mirror of https://github.com/lianthony/NT4.0
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.
105 lines
3.3 KiB
105 lines
3.3 KiB
|
|
/*++
|
|
|
|
Copyright (c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
trans2.h
|
|
|
|
Abstract:
|
|
|
|
This module provides the routine headers for the routines in smbfuncs.c
|
|
|
|
|
|
Author:
|
|
|
|
Larry Osterman (LarryO) 19-Nov-1992
|
|
|
|
Revision History:
|
|
|
|
19-Nov-1992 LarryO
|
|
|
|
Created
|
|
|
|
--*/
|
|
#ifndef _TRANS2_
|
|
#define _TRANS2_
|
|
|
|
struct _TRANCEIVE2CONTEXT;
|
|
|
|
typedef
|
|
NTSTATUS
|
|
(*PTRANSACTION_COMPLETION_ROUTINE)(
|
|
IN NTSTATUS TransactionStatus,
|
|
IN PVOID Context,
|
|
IN struct _TRANCEIVE2CONTEXT *TransactionContext,
|
|
IN PVOID OutSetup,
|
|
IN CLONG OutSetupCount,
|
|
IN PVOID OutParam,
|
|
IN CLONG OutParamCount,
|
|
IN PVOID OutData,
|
|
IN CLONG OutDataLength
|
|
);
|
|
|
|
/*++
|
|
Routine Description:
|
|
|
|
This routine is called when a transaction SMB is completed.
|
|
|
|
Arguments:
|
|
|
|
IN PVOID OutSetup - Response setup words
|
|
IN CLONG OutSetupCount - Length of response setup in bytes
|
|
|
|
IN PVOID OutParam - Response parameters
|
|
IN CLONG OutParameterCount - Size of response parameters in bytes
|
|
|
|
IN PVOID OutData - Response data
|
|
IN CLONG OutDataCount - Size of response data in bytes.
|
|
|
|
Return Value:
|
|
|
|
NTSTATUS - Status of request
|
|
|
|
--*/
|
|
|
|
//
|
|
// The _Tranceive2Context structure defines all of the
|
|
// information needed to complete a request at receive indication
|
|
// notification time.
|
|
//
|
|
|
|
typedef struct _TRANCEIVE2CONTEXT {
|
|
TRANCEIVE_HEADER Header; // Common header structure
|
|
PIRP ReceiveIrp OPTIONAL; // IRP used for receive if specified
|
|
PMPX_ENTRY MpxEntry; // MPX table used for this transaction
|
|
PSECURITY_ENTRY Se; // Security entry for Trans2.
|
|
ULONG TransactionStartTime; // Timeout for this tranceive exchange
|
|
ULONG TransactionTimeout; // Timeout for this tranceive exchange
|
|
PVOID SetupWords; // Points to setup words.
|
|
ULONG MaxSetupWords; // Max # setup words.
|
|
PMDL ReceiveMdl; // Points to ReceiveSmbBuffer->Mdl
|
|
PMDL ParameterMdl; // Places parameters from SMB directly
|
|
PMDL InParameterPartialMdl; // into callers input buffer
|
|
PMDL OutParameterPartialMdl; // into callers output buffer
|
|
PMDL OutDataMdl; // Places Data from SMB directly
|
|
// into the callers buffer
|
|
PMDL OutDataPartialMdl; // Used to tell where in the callers
|
|
// data buffer the data from the SMB
|
|
// is to be placed.
|
|
PMDL PadMdl; // Used to discard pad bytes after
|
|
// the parameters.
|
|
CLONG Lsetup; // Number of setup bytes to return.
|
|
CLONG Lparam; // Parameter bytes received so far
|
|
CLONG ParametersExpected; // Stop when <= Lparam
|
|
CLONG Ldata; // Data bytes received so far
|
|
CLONG DataExpected; // Stop when <= Ldata
|
|
PTRANSACTION_COMPLETION_ROUTINE Routine;
|
|
PVOID CallbackContext;
|
|
USHORT Flags; // Transaction flags.
|
|
BOOLEAN ErrorMoreData; // One of the packets received contained
|
|
// this warning.
|
|
} TRANCEIVE2CONTEXT, *PTRANCEIVE2CONTEXT;
|
|
|
|
#endif // _TRANS2_
|