162 lines
3.2 KiB
C
162 lines
3.2 KiB
C
|
/*++
|
||
|
|
||
|
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
|
||
|
);
|