mirror of https://github.com/lianthony/NT4.0
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.
168 lines
2.9 KiB
168 lines
2.9 KiB
/*++
|
|
|
|
|
|
Intel Corporation Proprietary Information
|
|
Copyright (c) 1995 Intel Corporation
|
|
|
|
This listing is supplied under the terms of a license agreement with
|
|
Intel Corporation and may not be used, copied, nor disclosed except in
|
|
accordance with the terms of that agreeement.
|
|
|
|
|
|
Module Name:
|
|
|
|
util.h
|
|
|
|
Abstract:
|
|
|
|
This module contains utility MACRO'S and definitions used for
|
|
WINSOCK2 DLL
|
|
|
|
Author:
|
|
|
|
Dirk Brandewie [email protected] 11-JUL-1995
|
|
|
|
Revision History:
|
|
|
|
|
|
--*/
|
|
#include "warnoff.h"
|
|
#include <windows.h>
|
|
#include "classfwd.h"
|
|
|
|
|
|
//
|
|
// The highest WinSock versions supported by this DLL.
|
|
//
|
|
|
|
#define WINSOCK_HIGH_API_VERSION MAKEWORD(2,2)
|
|
#define WINSOCK_HIGH_SPI_VERSION MAKEWORD(2,2)
|
|
|
|
|
|
//
|
|
// The maximum allowed length for a catalog name such as "Protocol_Catalog9"
|
|
// or "NameSpace_Catalog5". This makes ValidateCurrentCatalogName() a bit
|
|
// simpler.
|
|
//
|
|
|
|
#define MAX_CATALOG_NAME_LENGTH 32
|
|
|
|
|
|
//
|
|
// Enumeration context passed into DCATALOG::ChooseCatalogItemFromAttributes()
|
|
// to resume a lookup at a specific location.
|
|
//
|
|
|
|
typedef LPVOID DCATALOG_ENUMERATION_CONTEXT, *PDCATALOG_ENUMERATION_CONTEXT;
|
|
|
|
#define DCATALOG_ENUMERATION_CONTEXT_BEGINNING NULL
|
|
|
|
|
|
//
|
|
// API prolog. Note that Prolog_v1 is always used for WinSock 1.1 apps,
|
|
// and Prolog_v2 is always used for WinSock 2.x apps.
|
|
//
|
|
// Code within this DLL should call the prolog through the PROLOG macro.
|
|
// This will make life a bit simpler if we decide to change it yet again
|
|
// in the future.
|
|
//
|
|
|
|
INT
|
|
WINAPI
|
|
Prolog_v1(
|
|
OUT PDPROCESS FAR * Process,
|
|
OUT PDTHREAD FAR * Thread,
|
|
OUT LPINT ErrorCode
|
|
);
|
|
|
|
INT
|
|
WINAPI
|
|
Prolog_v2(
|
|
OUT PDPROCESS FAR * Process,
|
|
OUT PDTHREAD FAR * Thread,
|
|
OUT LPINT ErrorCode
|
|
);
|
|
|
|
typedef
|
|
INT
|
|
(WINAPI * LPFN_PROLOG)(
|
|
OUT PDPROCESS FAR * Process,
|
|
OUT PDTHREAD FAR * Thread,
|
|
OUT LPINT ErrorCode
|
|
);
|
|
|
|
extern LPFN_PROLOG PrologPointer;
|
|
|
|
#define PROLOG(b,p,t) (PrologPointer)( (b), (p), (t) )
|
|
|
|
//
|
|
// NT WOW Support.
|
|
//
|
|
|
|
typedef
|
|
BOOL
|
|
(WINAPI * LPFN_POSTMESSAGE)(
|
|
HWND hWnd,
|
|
UINT Msg,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
);
|
|
|
|
//
|
|
// Registry manipulation.
|
|
//
|
|
|
|
BOOL
|
|
WriteRegistryEntry(
|
|
IN HKEY EntryKey,
|
|
IN LPCTSTR EntryName,
|
|
IN PVOID Data,
|
|
IN DWORD TypeFlag
|
|
);
|
|
|
|
BOOL
|
|
ReadRegistryEntry(
|
|
IN HKEY EntryKey,
|
|
IN LPTSTR EntryName,
|
|
OUT PVOID Data,
|
|
IN DWORD MaxBytes,
|
|
IN DWORD TypeFlag
|
|
);
|
|
|
|
LONG
|
|
RegDeleteKeyRecursive(
|
|
IN HKEY hkey,
|
|
IN LPCTSTR lpszSubKey
|
|
);
|
|
|
|
HKEY
|
|
OpenWinSockRegistryRoot();
|
|
|
|
VOID
|
|
CloseWinSockRegistryRoot(
|
|
HKEY RootKey
|
|
);
|
|
|
|
VOID
|
|
ValidateCurrentCatalogName(
|
|
HKEY RootKey,
|
|
LPSTR ValueName,
|
|
LPSTR ExpectedName
|
|
);
|
|
|
|
//
|
|
// Ansi/Unicode conversions.
|
|
//
|
|
|
|
INT
|
|
MapUnicodeProtocolInfoToAnsi(
|
|
IN LPWSAPROTOCOL_INFOW UnicodeProtocolInfo,
|
|
OUT LPWSAPROTOCOL_INFOA AnsiProtocolInfo
|
|
);
|
|
|
|
INT
|
|
MapAnsiProtocolInfoToUnicode(
|
|
IN LPWSAPROTOCOL_INFOA AnsiProtocolInfo,
|
|
OUT LPWSAPROTOCOL_INFOW UnicodeProtocolInfo
|
|
);
|
|
|