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.
374 lines
6.2 KiB
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_
|
|
|