Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

374 lines
6.2 KiB

/*++
Copyright (c) 1989 Microsoft Corporation
Module Name:
subs.h
Abstract:
Declarations of common subroutines for USRV.
Author:
David Treadwell (davidtr) 20-Nov-1989
Chuck Lenzmeier (chuckl)
Revision History:
--*/
#ifndef _SUBS_
#define _SUBS_
//
// Redir thread entry points. See redir.c
//
NTSTATUS
RedirThreadWrapper (
IN PVOID Dummy
);
NTSTATUS
RedirThread (
IN PDESCRIPTOR Redir
);
//
// SMB header makers and verifiers. See subs.c
//
NTSTATUS
MakeSmbHeader(
IN OUT PDESCRIPTOR Redir,
IN OUT PSMB_HEADER Header,
IN USHORT Command,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues
);
NTSTATUS
VerifySmbHeader(
IN OUT PDESCRIPTOR Redir,
IN PID_SELECTIONS IdSelections,
IN OUT PID_VALUES IdValues,
IN PSMB_HEADER Header,
IN USHORT Command
);
//
// And X chain makers and verifiers. See subs.c
//
NTSTATUS
MakeAndXChain(
IN OUT PDESCRIPTOR Redir,
IN OUT PVOID Buffer,
IN OUT PVOID ForcedParams OPTIONAL,
IN UCHAR AndXCommand,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues,
OUT PULONG SmbSize
);
NTSTATUS
VerifyAndXChain(
IN OUT PDESCRIPTOR Redir,
IN PVOID ForcedParams OPTIONAL,
IN UCHAR AndXCommand,
IN PID_SELECTIONS IdSelections,
IN OUT PID_VALUES IdValues,
OUT PULONG SmbSize,
IN PVOID Buffer
);
//
// Common subroutines. See subs.c
//
CCHAR
GetTreeConnectIndex (
IN PSZ InputString
);
LONG
MatchTestName(
IN PSZ GivenName
);
VOID
PutDateAndTime(
IN PSZ Prefix,
IN SMB_DATE Date,
IN SMB_TIME Time
);
VOID
PutDateAndTime2(
IN SMB_DATE Date,
IN SMB_TIME Time
);
VOID
PutNtDateAndTime(
IN PSZ Prefix,
IN LARGE_INTEGER Time
);
NTSTATUS
ReceiveSmb(
IN PDESCRIPTOR Redir,
PSZ DebugString,
IN UCHAR ReceiveBuffer
);
NTSTATUS
SendAndReceiveSmb(
IN PDESCRIPTOR Redir,
PSZ DebugString,
IN ULONG SmbSize,
IN UCHAR SendBuffer,
IN UCHAR ReceiveBuffer
);
NTSTATUS
SendAndReceiveTransaction(
IN OUT PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues,
IN UCHAR Command,
IN OUT PVOID Setup,
IN CLONG InSetupCount,
IN OUT PCLONG OutSetupCount,
IN PUCHAR Name,
IN USHORT Function,
IN OUT PVOID Parameters,
IN CLONG InParameterCount,
IN OUT PCLONG OutParameterCount,
IN OUT PVOID Data,
IN CLONG InDataCount,
IN OUT PCLONG OutDataCount
);
NTSTATUS
SendSmb(
IN PDESCRIPTOR Redir,
PSZ DebugString,
IN ULONG SmbSize,
IN UCHAR SendBuffer
);
NTSTATUS
StartReceive (
IN PSZ Operation,
IN HANDLE FileHandle,
IN HANDLE EventHandle,
IN PIO_STATUS_BLOCK Iosb,
IN PVOID Buffer,
IN ULONG BufferLength
);
NTSTATUS
StartSend (
IN PSZ Operation,
IN HANDLE FileHandle,
IN HANDLE EventHandle,
IN PIO_STATUS_BLOCK Iosb,
IN PVOID Buffer,
IN ULONG BufferLength
);
NTSTATUS
WaitForSendOrReceive (
IN PSZ Operation,
IN PDESCRIPTOR Redir,
IN UCHAR EventNumber,
IN PSZ SendOrReceive
);
//
// EA list manipulators. See subs.c
//
VOID
AllocateAndBuildFeaList (
IN PVOID *Information,
IN PCLONG InformationLength,
IN PSZ argv[],
IN SHORT argc
);
VOID
BuildGeaList (
IN PVOID Information,
IN PCLONG InformationLength,
IN PSZ argv[],
IN SHORT argc
);
VOID
PrintFeaList (
IN PFEALIST FeaList
);
//
// Error printing routine.
//
VOID
PrintError (
#ifdef DOSERROR
IN USHORT ErrorClass,
IN USHORT ErrorCode
#else
IN NTSTATUS Status
#endif
);
//
// Generic SMB generating routines.
//
NTSTATUS
DoOpen(
IN PSZ Title,
IN PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues,
IN CLONG Session,
IN USHORT Pid,
IN PSTRING File,
IN USHORT DesiredAccess,
IN USHORT OpenFunction,
OUT PUSHORT Fid,
#ifdef DOSERROR
IN UCHAR ExpectedClass,
IN USHORT ExpectedError
#else
IN NTSTATUS ExpectedStatus
#endif
);
NTSTATUS
DoClose(
IN PSZ Title,
IN PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues,
IN CLONG Session,
IN USHORT Fid,
#ifdef DOSERROR
IN UCHAR ExpectedClass,
IN USHORT ExpectedError
#else
IN NTSTATUS ExpectedStatus
#endif
);
NTSTATUS
DoDelete(
IN PSZ Title,
IN PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues,
IN CLONG Session,
IN PSTRING File,
#ifdef DOSERROR
IN UCHAR ExpectedClass,
IN USHORT ExpectedError
#else
IN NTSTATUS ExpectedStatus
#endif
);
//
// Named pipe transaction operations
//
NTSTATUS
WaitNamedPipe(
IN PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues
);
NTSTATUS
QueryNamedPipeHandle(
IN PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues
);
NTSTATUS
SetNamedPipeHandle(
IN PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues,
IN USHORT HandleState
);
NTSTATUS
QueryNamedPipeInfo(
IN PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues,
IN USHORT Level
);
NTSTATUS
CallNamedPipe(
IN PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues,
IN USHORT OutputDataLength
);
NTSTATUS
PeekNamedPipe(
IN PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues,
IN USHORT BytesToRead
);
NTSTATUS
TransactNamedPipe(
IN PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues,
IN PUCHAR OutputData,
IN USHORT OutputDataLength
);
NTSTATUS
RawReadNamedPipe(
IN PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues
);
NTSTATUS
RawWriteNamedPipe(
IN PDESCRIPTOR Redir,
IN PSZ DebugString,
IN PID_SELECTIONS IdSelections,
IN PID_VALUES IdValues
);
#endif // ndef _SUBS_