Source code of Windows XP (NT5)
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

/*++
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
);