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.
161 lines
3.2 KiB
161 lines
3.2 KiB
/*++
|
|
|
|
Copyright (c) 1991 Microsoft Corporation
|
|
Copyright (c) 1991 Nokia Data Systems
|
|
|
|
Module Name:
|
|
|
|
dlcdll.h
|
|
|
|
Abstract:
|
|
|
|
This module incldes all files needed to compile
|
|
the NT DLC DLL API module.
|
|
|
|
Author:
|
|
|
|
Antti Saarenheimo (o-anttis) 20-09-1991
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
//
|
|
// System APIs:
|
|
//
|
|
|
|
#include <nt.h>
|
|
|
|
#ifndef OS2_EMU_DLC
|
|
|
|
#include <ntrtl.h>
|
|
#include <nturtl.h>
|
|
|
|
#if !defined(UNICODE)
|
|
#define UNICODE // want wide character registry functions
|
|
#endif
|
|
|
|
#include <windows.h>
|
|
#include <winreg.h>
|
|
#define INCLUDE_IO_BUFFER_SIZE_TABLE // includes the io buffer sizes
|
|
|
|
#endif // OS2_EMU_DLC
|
|
|
|
#include <memory.h>
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
|
|
//
|
|
// Inlcude the smb macros to handle the unaligned dos ccb and parameter tables
|
|
//
|
|
|
|
#include <smbgtpt.h>
|
|
|
|
//
|
|
// NT DLC API interface files:
|
|
//
|
|
|
|
#include <dlcapi.h> // Official DLC API definition
|
|
#include <ntdddlc.h> // IOCTL commands
|
|
#include <dlcio.h> // Internal IOCTL API interface structures
|
|
|
|
//
|
|
// Local types and function prototypes:
|
|
//
|
|
|
|
typedef
|
|
VOID
|
|
(*PFDLC_POST_ROUTINE)(
|
|
IN PVOID hApcContext,
|
|
IN PLLC_CCB pCcb
|
|
);
|
|
|
|
#define SUPPORT_DEBUG_NAMES 0
|
|
|
|
//
|
|
// In DOS the adapter number and NetBIOS command use the same
|
|
// byte in CCB/NCB data structure.
|
|
// The smallest NetBIOS command is NCB.CALL (10H), which limits
|
|
// the maximum adapter numbers 0 - 15 in DOS (and Windows NT)
|
|
// The extra adapter numbers above 15 may be used as extra
|
|
// alternate adapter handles to extend the number of available
|
|
// link stations. Only the first instance of a SAP can receive
|
|
// remote connect requests.
|
|
//
|
|
|
|
#define LLC_MAX_ADAPTER_NUMBER 255
|
|
#define LLC_MAX_ADAPTERS 16
|
|
|
|
#define TR_16Mbps_LINK_SPEED 0x1000000
|
|
|
|
VOID
|
|
QueueCommandCompletion(
|
|
PLLC_CCB pCCB
|
|
);
|
|
VOID
|
|
InitializeAcsLan(
|
|
VOID
|
|
);
|
|
LLC_STATUS
|
|
OpenDlcApiDriver(
|
|
IN PVOID SecurityDescriptor,
|
|
OUT HANDLE *pHandle
|
|
);
|
|
LLC_STATUS
|
|
GetAdapterNameAndParameters(
|
|
IN UINT AdapterNumber,
|
|
OUT PUNICODE_STRING pNdisName,
|
|
OUT PUCHAR pTicks,
|
|
OUT PLLC_ETHERNET_TYPE pLlcEthernetType
|
|
);
|
|
VOID
|
|
CopyAsciiStringToUnicode(
|
|
IN PUNICODE_STRING pUnicodeDest,
|
|
IN PSZ pAsciiSrc
|
|
);
|
|
VOID
|
|
BuildDescriptorList(
|
|
IN PLLC_TRANSMIT_DESCRIPTOR pDescriptor,
|
|
IN PLLC_CCB pCCB,
|
|
IN OUT PUINT pCurrentDescriptor
|
|
);
|
|
LLC_STATUS
|
|
DoSyncDeviceIoControl(
|
|
IN HANDLE DeviceHandle,
|
|
IN ULONG IoctlCommand,
|
|
IN PVOID pInputBuffer,
|
|
IN UINT InputBufferLength,
|
|
OUT PVOID pOutputBuffer,
|
|
IN UINT OutputBufferLength
|
|
);
|
|
LLC_STATUS
|
|
DlcGetInfo(
|
|
IN HANDLE DriverHandle,
|
|
IN UINT InfoClass,
|
|
IN USHORT StationId,
|
|
IN PVOID pOutputBuffer,
|
|
IN UINT OutputBufferLength
|
|
);
|
|
VOID
|
|
CopyToDescriptorBuffer(
|
|
IN OUT PLLC_TRANSMIT_DESCRIPTOR pDescriptors,
|
|
IN PLLC_BUFFER pDlcBufferQueue,
|
|
IN BOOLEAN DeallocateBufferAfterUse,
|
|
IN OUT PUINT pIndex,
|
|
IN OUT PLLC_BUFFER *ppLastBuffer,
|
|
OUT LLC_STATUS *pStatus
|
|
);
|
|
LLC_STATUS
|
|
DlcSetInfo(
|
|
IN HANDLE DriverHandle,
|
|
IN UINT InfoClass,
|
|
IN USHORT StationId,
|
|
IN PNT_DLC_SET_INFORMATION_PARMS pSetInfoParms,
|
|
IN PVOID DataBuffer,
|
|
IN UINT DataBufferLength
|
|
);
|
|
|
|
USHORT
|
|
GetCcbStationId(
|
|
IN PLLC_CCB pCCB
|
|
);
|