Leaked source code of windows server 2003
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.
|
|
/*++
Copyright (c) 1992 Microsoft Corporation
Module Name:
wshatalk.h
Abstract:
Author:
Nikhil Kamkolkar (nikhilk@microsoft.com)
Revision History: 10 Jul 1992 Initial Version
--*/
#include "atalktdi.h"
#include "atalkwsh.h" // winsock header file for appletalk
#define WSH_ATALK_ADSPSTREAM L"\\Device\\AtalkAdsp\\Stream"
#define WSH_ATALK_ADSPRDM L"\\Device\\AtalkAdsp"
#define WSH_ATALK_PAPRDM L"\\Device\\AtalkPap"
#define WSH_KEYPATH_CODEPAGE \
TEXT("SYSTEM\\CurrentControlSet\\Control\\Nls\\Codepage")
#define WSHREG_VALNAME_CODEPAGE TEXT("MACCP")
//
// Device names for DDP need protocol field at the end - defined in wshdata.h
//
//
// Structure and variables to define the triples supported by Appletalk. The
// first entry of each array is considered the canonical triple for
// that socket type; the other entries are synonyms for the first.
//
typedef struct _MAPPING_TRIPLE { INT AddressFamily; INT SocketType; INT Protocol; } MAPPING_TRIPLE, *PMAPPING_TRIPLE;
//
// The socket context structure for this DLL. Each open Appletalk socket
// will have one of these context structures, which is used to maintain
// information about the socket.
//
typedef struct _WSHATALK_SOCKET_CONTEXT { INT AddressFamily; INT SocketType; INT Protocol; } WSHATALK_SOCKET_CONTEXT, *PWSHATALK_SOCKET_CONTEXT;
//
// Forward declarations of internal routines.
//
BOOL FAR PASCAL WshDllInitialize( HINSTANCE hInstance, DWORD nReason, LPVOID pReserved);
BOOLEAN WshRegGetCodePage( VOID);
BOOLEAN WshNbpNameToMacCodePage( IN OUT PWSH_NBP_NAME pNbpName);
BOOLEAN WshNbpNameToOemCodePage( IN OUT PWSH_NBP_NAME pNbpName);
BOOLEAN WshZoneListToOemCodePage( IN OUT PUCHAR pZoneList, IN USHORT NumZones);
BOOLEAN WshConvertStringMacToOem( IN PUCHAR pSrcMacString, IN USHORT SrcStringLen, OUT PUCHAR pDestOemString, IN PUSHORT pDestStringLen);
BOOLEAN WshConvertStringOemToMac( IN PUCHAR pSrcOemString, IN USHORT SrcStringLen, OUT PUCHAR pDestMacString, IN PUSHORT pDestStringLen);
INT WSHNtStatusToWinsockErr( IN NTSTATUS Status);
BOOLEAN IsTripleInList ( IN PMAPPING_TRIPLE List, IN ULONG ListLength, IN INT AddressFamily, IN INT SocketType, IN INT Protocol);
VOID CompleteTdiActionApc ( IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock);
//
// Macros
//
#if DBG
#define DBGPRINT(Fmt) \
{ \ DbgPrint("WSHATALK: "); \ DbgPrint Fmt; \ }
#define DBGBRK() \
{ \ DbgBreakPoint(); \ } #else
#define DBGPRINT(Fmt)
#define DBGBRK()
#endif
#define SOCK_TO_TDI_ATALKADDR(tdiAddr, sockAddr) \
{ \ (tdiAddr)->TAAddressCount = 1; \ (tdiAddr)->Address[0].AddressLength = sizeof(TDI_ADDRESS_APPLETALK); \ (tdiAddr)->Address[0].AddressType = TDI_ADDRESS_TYPE_APPLETALK; \ (tdiAddr)->Address[0].Address[0].Network = (sockAddr)->sat_net; \ (tdiAddr)->Address[0].Address[0].Node = (sockAddr)->sat_node; \ (tdiAddr)->Address[0].Address[0].Socket = (sockAddr)->sat_socket; \ }
#define TDI_TO_SOCK_ATALKADDR(sockAddr, tdiAddr) \
{ \ (sockAddr)->sat_family = AF_APPLETALK; \ (sockAddr)->sat_net = (tdiAddr)->Address[0].Address[0].Network; \ (sockAddr)->sat_node = (tdiAddr)->Address[0].Address[0].Node; \ (sockAddr)->sat_socket = (tdiAddr)->Address[0].Address[0].Socket; \ }
|