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.
 
 
 
 
 
 

267 lines
6.8 KiB

typedef struct _LLC_TEST_CCB_POOL {
PLLC_CCB pCcbList;
ULONG CompletionFlag;
UCHAR DefautlAdapter;
UCHAR DefautlCommand;
} LLC_TEST_CCB_POOL, *PLLC_TEST_CCB_POOL;
#define CcbPoolFree( pPool, pCcb ) \
if ((pCcb)->uchDlcStatus == -2) { \
puts("Circular list!"); \
(pCcb)->pNext = NULL; \
} \
else { \
(pCcb)->uchDlcStatus = -2; \
(pCcb)->pNext = (pPool)->pCcbList; \
(pPool)->pCcbList = pCcb;\
}
VOID
CcbPoolDelete(
PLLC_TEST_CCB_POOL pTranmitCcbPool
);
PLLC_CCB
CcbPoolAlloc(
IN PLLC_TEST_CCB_POOL pTranmitCcbPool
);
VOID
CcbPoolInitialize(
PLLC_TEST_CCB_POOL pTranmitCcbPool,
UCHAR DefaultAdapter,
UCHAR DefaultCommand,
ULONG CompletionFlag
);
UINT
BufferFree(
IN UINT AdapterNumber,
IN PVOID pFirstBuffer,
OUT PUINT puiBuffersLeft
);
UINT
BufferGet(
IN UINT AdapterNumber,
IN UINT cBuffersToGet,
IN UINT cbSegmetSize,
OUT PLLC_BUFFER *ppFirstBuffer,
OUT PUINT puiBuffersLeft
);
UINT
BufferCreate(
IN UINT AdapterNumber,
IN PVOID pVirtualMemoryBuffer,
IN ULONG ulVirtualMemorySize,
IN ULONG ulMaxFreeSizeTreshold,
IN ULONG ulMinFreeSizeTreshold,
OUT HANDLE *phBufferPoolHandle
);
UINT
LlcDirOpenAdapter(
IN UINT AdapterNumber,
IN PVOID SecurityDescriptor OPTIONAL,
IN PVOID hBufferPool OPTIONAL,
OUT PUINT usOpenErrorCode,
OUT PVOID pNodeAddress OPTIONAL,
OUT PUINT puiMaxFrameLength,
OUT PLLC_DLC_PARMS pDlcParameters OPTIONAL
);
UINT
LlcDirSetExceptionFlags(
IN UINT AdapterNumber,
IN ULONG ulAdapterCheckFlag,
IN ULONG ulNetworkStatusFlag,
IN ULONG ulPcErrorFlag,
IN ULONG ulSystemActionFlag
);
UINT
DirStatus(
IN UINT AdapterNumber,
OUT PLLC_DIR_STATUS_PARMS pDirStatus
);
UINT
DirReadLog(
IN UINT AdapterNumber,
IN UINT TypeId,
OUT PLLC_DIR_READ_LOG_BUFFER pReadDirLog
);
UINT
DlcModify(
IN UINT AdapterNumber,
IN USHORT StationId,
IN PLLC_DLC_MODIFY_PARMS pDlcModify
);
UINT
LlcDlcOpenSap(
IN UINT AdapterNumber,
IN UINT usMaxI_Field,
IN UCHAR uchSapValue,
IN UINT Options,
IN UINT uchcStationCount,
IN UINT cGroupCount OPTIONAL,
IN PUCHAR pGroupList OPTIONAL,
IN ULONG DlcStatusFlags OPTIONAL,
IN PLLC_DLC_OPEN_SAP_PARMS pSapParms OPTIONAL,
OUT PUSHORT pusStationId,
OUT PUCHAR pcLinkStationsAvail
);
UINT
DlcOpenStation(
IN UINT AdapterNumber,
IN USHORT usSapStationId,
IN UCHAR uchRemoteSap,
IN PVOID pRemoteNodeAddress,
IN PVOID pStationParms,
OUT PUSHORT pusLinkStationId
);
UINT
LlcDlcReallocate(
IN UINT AdapterNumber,
IN USHORT usStationId,
IN UINT Option,
IN UCHAR uchStationCount,
OUT PUCHAR puchStationsAvailOnAdapter,
OUT PUCHAR puchStationsAvailOnSap,
OUT PUCHAR puchTotalStationsOnAdapter,
OUT PUCHAR puchTotalStationsOnSap
);
UINT
DlcStatistics(
IN UINT AdapterNumber,
IN USHORT usStationId,
IN PLLC_DLC_LOG_BUFFER pLogBuf,
IN UINT Options
);
UINT
LlcDirInitialize(
IN UINT AdapterNumber,
OUT PUSHORT pusBringUps
);
UINT
LlcDirOpenDirect(
IN UINT AdapterNumber,
IN UINT OpenOptions,
IN UINT EthernetType OPTIONAL
);
UINT
LlcCommand(
IN UINT AdapterNumber,
IN UCHAR Command,
IN ULONG Parameter
);
PLLC_CCB
LlcCommandInit(
IN UINT AdapterNumber,
IN UCHAR Command,
IN ULONG Parameter,
IN ULONG CompletionFlag
);
PLLC_CCB
DlcConnectStationInit(
IN UCHAR Adapter,
IN ULONG CompletionFlag,
IN USHORT usStationId,
IN PVOID pRoutingInfo
);
PLLC_CCB
ReadInit(
IN UCHAR Adapter,
IN USHORT usStationId,
IN UINT OptionIndicator,
IN UINT EventSet
);
PLLC_CCB
ReceiveInit(
IN UCHAR Adapter,
IN ULONG CompletionFlag,
IN USHORT usStationId,
IN USHORT UserLength,
IN ULONG ReceiveFlag,
IN UINT Options,
IN UINT RcvReadOptions
);
PLLC_CCB
TransmitInit(
IN UCHAR Adapter,
IN UINT Command,
IN ULONG CompletionFlag,
IN USHORT StationId,
IN UCHAR RemoteSap,
IN UINT XmitReadOption
);
PLLC_CCB
DirTimerSetInit(
IN UCHAR Adapter,
IN ULONG CompletionFlag,
IN USHORT HalfSeconds
);
PLLC_CCB
LlcCloseInit(
IN UINT Adapter,
IN ULONG CompletionFlag,
IN UINT DlcCommand,
IN USHORT StationId
);
PLLC_CCB
AllocCcb(
IN UINT Adapter,
IN UINT DlcCommand,
IN ULONG CompletionFlag
);
VOID
FreeCcb(
IN PLLC_CCB pCcb
);
VOID
PrintHex(
IN PUCHAR pString,
IN UINT Len
);
#define DirInterrupt( Adapter ) \
LlcCommand( Adapter, LLC_DIR_INTERRUPT, 0)
#define DirTimerCancel( pCcb ) \
LlcCommand( pCcb->uchAdapterNumber, LLC_DIR_TIMER_CANCEL, (ULONG)pCcb)
#define DirTimerCancelGroup( Adapter, Flag )\
LlcCommand( Adapter, LLC_DIR_TIMER_CANCEL_GROUP, Flag )
#define DirTimerCancelGroupInit( Adapter, Flag )\
LlcCommandInit( Adapter, LLC_DIR_TIMER_CANCEL_GROUP, Flag, \
TEST_COMMAND_COMPLETION_FLAG )
#define DirSetGroupAddress( Adapter, AddressBits )\
LlcCommand( Adapter, LLC_DIR_SET_GROUP_ADDRESS, \
*((PULONG)AddressBits) )
#define DirSetFunctionalAddress( Adapter, AddressBits )\
LlcCommand( Adapter, LLC_DIR_SET_FUNCTIONAL_ADDRESS, \
*((PULONG)AddressBits) )
#define DlcFlowControl( Adapter, StationId, Options )\
LlcCommand( Adapter, LLC_DLC_FLOW_CONTROL, \
((ULONG)Options << 16) + StationId)
#define ReadCancel( pCcb ) \
LlcCommand( pCcb->uchAdapterNumber, LLC_READ_CANCEL, (ULONG)pCcb)
#define ReceiveCancel( pCcb ) \
LlcCommand( pCcb->uchAdapterNumber, LLC_RECEIVE_CANCEL, (ULONG)pCcb)
UINT AcslanAssert( UINT AcslanStatus, UCHAR DlcStatus );
#define ACSLAN_ASSERT( a, b ) b
//#define ACSLAN_ASSERT( a, b ) AcslanAssert( a, b )
#define InitializeCcb( pCcb, AdapterNumber, Command, pParameter ) \
RtlZeroMemory( (pCcb), sizeof(*(pCcb)));\
RtlZeroMemory( (pParameter), sizeof(*(pParameter)));\
(pCcb)->uchAdapterNumber = (UCHAR)AdapterNumber;\
(pCcb)->uchDlcCommand = (UCHAR)Command;\
(pCcb)->u.pParameterTable = (PLLC_PARMS)(pParameter)
#define InitializeCcb2( pCcb, AdapterNumber, Command ) \
RtlZeroMemory( (pCcb), sizeof(*(pCcb)));\
(pCcb)->uchAdapterNumber = (UCHAR)AdapterNumber;\
(pCcb)->uchDlcCommand = (UCHAR)Command;