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.
177 lines
4.9 KiB
177 lines
4.9 KiB
/*++
|
|
|
|
Copyright (c) 1998 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
hdrext.h
|
|
|
|
Abstract:
|
|
|
|
This file contains all declarations
|
|
used in handling NBF / DLC Headers.
|
|
|
|
Author:
|
|
|
|
Chaitanya Kodeboyina
|
|
|
|
Environment:
|
|
|
|
User Mode
|
|
|
|
--*/
|
|
#ifndef __HDREXT_H
|
|
#define __HDREXT_H
|
|
|
|
//
|
|
// Macros
|
|
//
|
|
|
|
#ifndef FIELD_OFFSET
|
|
#define FIELD_OFFSET(type, field) ((LONG)&(((type *)0)->field))
|
|
#endif//FIELD_OFFSET
|
|
|
|
//
|
|
// Helper Prototypes
|
|
//
|
|
UINT ReadNbfPktHdr(PNBF_HDR pPktHdr, ULONG proxyPtr);
|
|
|
|
UINT PrintNbfPktHdr(PNBF_HDR pPktHdr, ULONG proxyPtr, ULONG printDetail);
|
|
|
|
UINT FreeNbfPktHdr(PNBF_HDR pPktHdr);
|
|
|
|
//
|
|
// Constants
|
|
//
|
|
#ifdef OFFSET
|
|
#undef OFFSET
|
|
#endif
|
|
#define OFFSET(field) FIELD_OFFSET(NBF_HDR_GENERIC, field)
|
|
|
|
//
|
|
// A Generic View of any NBF Header
|
|
//
|
|
|
|
StructAccessInfo NbfGenPktHdrInfo =
|
|
{
|
|
"Nbf Generic Packet Header",
|
|
|
|
{
|
|
{ "Length", OFFSET(Length), sizeof(USHORT), NULL, LOW },
|
|
|
|
{ "Signature", OFFSET(Signature), 2*sizeof(UCHAR), NULL, LOW },
|
|
|
|
{ "Command", OFFSET(Command), sizeof(UCHAR), NULL, NOR },
|
|
|
|
{ "Data1", OFFSET(Data1), sizeof(UCHAR), NULL, LOW },
|
|
|
|
{ "Data2", OFFSET(Data2), sizeof(USHORT), NULL, LOW },
|
|
|
|
{ "TransmitCorrelator",
|
|
OFFSET(TransmitCorrelator),
|
|
sizeof(USHORT), NULL, LOW },
|
|
{ "ResponseCorrelator",
|
|
OFFSET(ResponseCorrelator),
|
|
sizeof(USHORT), NULL, LOW },
|
|
|
|
{ "", 0, 0, NULL, LOW },
|
|
|
|
0
|
|
}
|
|
};
|
|
|
|
//
|
|
// NBF Header for a Connection-oriented data xfer
|
|
//
|
|
|
|
#ifdef OFFSET
|
|
#undef OFFSET
|
|
#endif
|
|
#define OFFSET(field) FIELD_OFFSET(NBF_HDR_CONNECTION, field)
|
|
|
|
StructAccessInfo NbfConnectionHdrInfo =
|
|
{
|
|
"Nbf CO Packet Header",
|
|
|
|
{
|
|
{ "Length", OFFSET(Length), sizeof(USHORT), NULL, LOW },
|
|
|
|
{ "Signature", OFFSET(Signature), sizeof(USHORT), NULL, LOW },
|
|
|
|
{ "Command", OFFSET(Command), sizeof(UCHAR), NULL, NOR },
|
|
|
|
{ "Data1", OFFSET(Data1), sizeof(UCHAR), NULL, LOW },
|
|
|
|
{ "Data2Low", OFFSET(Data2Low), sizeof(UCHAR), NULL, LOW },
|
|
|
|
{ "Data2High", OFFSET(Data2High), sizeof(UCHAR), NULL, LOW },
|
|
|
|
{ "TransmitCorrelator",
|
|
OFFSET(TransmitCorrelator),
|
|
sizeof(USHORT), NULL, LOW },
|
|
{ "ResponseCorrelator",
|
|
OFFSET(ResponseCorrelator),
|
|
sizeof(USHORT), NULL, LOW },
|
|
|
|
{ "DestinationSessionNumber",
|
|
OFFSET(DestinationSessionNumber),
|
|
sizeof(UCHAR), NULL, LOW },
|
|
|
|
{ "SourceSessionNumber",
|
|
OFFSET(SourceSessionNumber),
|
|
sizeof(UCHAR), NULL, LOW },
|
|
|
|
{ "", 0, 0, NULL, LOW },
|
|
|
|
0
|
|
}
|
|
};
|
|
|
|
//
|
|
// NBF Header for a Connection-less data xfer
|
|
//
|
|
|
|
#ifdef OFFSET
|
|
#undef OFFSET
|
|
#endif
|
|
#define OFFSET(field) FIELD_OFFSET(NBF_HDR_CONNECTIONLESS, field)
|
|
|
|
StructAccessInfo NbfConnectionLessHdrInfo =
|
|
{
|
|
"Nbf CL Packet Header",
|
|
|
|
{
|
|
{ "Length", OFFSET(Length), sizeof(USHORT), NULL, LOW },
|
|
|
|
{ "Signature", OFFSET(Signature), sizeof(USHORT), NULL, LOW },
|
|
|
|
{ "Command", OFFSET(Command), sizeof(UCHAR), NULL, NOR },
|
|
|
|
{ "Data1", OFFSET(Data1), sizeof(UCHAR), NULL, LOW },
|
|
|
|
{ "Data2Low", OFFSET(Data2Low), sizeof(UCHAR), NULL, LOW },
|
|
|
|
{ "Data2High", OFFSET(Data2High), sizeof(UCHAR), NULL, LOW },
|
|
|
|
{ "TransmitCorrelator",
|
|
OFFSET(TransmitCorrelator),
|
|
sizeof(USHORT), NULL, LOW },
|
|
{ "ResponseCorrelator",
|
|
OFFSET(ResponseCorrelator),
|
|
sizeof(USHORT), NULL, LOW },
|
|
|
|
{ "DestinationName",
|
|
OFFSET(DestinationName),
|
|
NETBIOS_NAME_LENGTH * sizeof(UCHAR), NULL, LOW },
|
|
|
|
{ "SourceName",
|
|
OFFSET(SourceName),
|
|
NETBIOS_NAME_LENGTH * sizeof(UCHAR), NULL, LOW },
|
|
|
|
{ "", 0, 0, NULL, LOW },
|
|
|
|
0
|
|
}
|
|
};
|
|
|
|
#endif // __HDREXT_H
|