150 lines
3.4 KiB
C
150 lines
3.4 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
rpcutil.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
This file contains prototypes for the bind and unbind functions that
|
|||
|
all net api stub functions will call. It also includes the allocate
|
|||
|
and free routines used by the MIDL generated RPC stubs.
|
|||
|
|
|||
|
Other function prototypes defined here are RPC helper routines to
|
|||
|
start and stop the RPC server, and the RPC status to Net API status
|
|||
|
mapping function.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Dan Lafferty danl 06-Feb-1991
|
|||
|
|
|||
|
Environment:
|
|||
|
|
|||
|
User Mode - Win32
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
06-Feb-1991 danl
|
|||
|
Created
|
|||
|
|
|||
|
26-Apr-1991 JohnRo
|
|||
|
Added IN and OUT keywords to MIDL functions. Commented-out
|
|||
|
(nonstandard) identifier on endif. Deleted tabs.
|
|||
|
|
|||
|
23-Oct-1991 Danl
|
|||
|
Added NetpInitRpcServer().
|
|||
|
|
|||
|
03-Dec-1991 JohnRo
|
|||
|
Added MIDL_user_reallocate and MIDL_user_size APIs. (These are so we
|
|||
|
create the NetApiBufferAllocate, NetApiBufferReallocate, and
|
|||
|
NetApiBufferSize APIs.)
|
|||
|
|
|||
|
20-Jul-1992 JohnRo
|
|||
|
RAID 2252: repl should prevent export on Windows/NT.
|
|||
|
Reordered this change history.
|
|||
|
01-Dec-1992 JohnRo
|
|||
|
Fix MIDL_user_ func signatures.
|
|||
|
|
|||
|
--*/
|
|||
|
#ifndef _RPCUTIL_
|
|||
|
#define _RPCUTIL_
|
|||
|
|
|||
|
#include <lmcons.h>
|
|||
|
|
|||
|
#ifndef RPC_NO_WINDOWS_H // Don't let rpc.h include windows.h
|
|||
|
#define RPC_NO_WINDOWS_H
|
|||
|
#endif // RPC_NO_WINDOWS_H
|
|||
|
|
|||
|
#include <rpc.h> // __RPC_FAR, etc.
|
|||
|
|
|||
|
//
|
|||
|
// DEFINES
|
|||
|
//
|
|||
|
|
|||
|
//
|
|||
|
// The following typedefs are created for use in the net api Enum entry point
|
|||
|
// routines. These structures are meant to mirror the level specific
|
|||
|
// info containers that are specified in the .idl file for the Enum API
|
|||
|
// function. Using these structures to set up for the API call allows
|
|||
|
// the entry point routine to avoid using any bulky level-specific logic
|
|||
|
// to set-up or return from the RPC stub call.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _GENERIC_INFO_CONTAINER {
|
|||
|
DWORD EntriesRead;
|
|||
|
LPBYTE Buffer;
|
|||
|
} GENERIC_INFO_CONTAINER, *PGENERIC_INFO_CONTAINER, *LPGENERIC_INFO_CONTAINER ;
|
|||
|
|
|||
|
typedef struct _GENERIC_ENUM_STRUCT {
|
|||
|
DWORD Level;
|
|||
|
PGENERIC_INFO_CONTAINER Container;
|
|||
|
} GENERIC_ENUM_STRUCT, *PGENERIC_ENUM_STRUCT, *LPGENERIC_ENUM_STRUCT ;
|
|||
|
|
|||
|
|
|||
|
#define NT_PIPE_PREFIX TEXT("\\PIPE\\")
|
|||
|
|
|||
|
//
|
|||
|
// Function Prototypes - routines called by MIDL-generated code:
|
|||
|
//
|
|||
|
|
|||
|
void __RPC_FAR * __RPC_API
|
|||
|
MIDL_user_allocate(
|
|||
|
IN size_t NumBytes
|
|||
|
);
|
|||
|
|
|||
|
void __RPC_API
|
|||
|
MIDL_user_free(
|
|||
|
IN void __RPC_FAR *MemPointer
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// Function Prototypes - routines to go along with the above, but aren't
|
|||
|
// needed by MIDL or any other non-network software.
|
|||
|
//
|
|||
|
|
|||
|
void *
|
|||
|
MIDL_user_reallocate(
|
|||
|
IN void * OldPointer OPTIONAL,
|
|||
|
IN size_t NewByteCount
|
|||
|
);
|
|||
|
|
|||
|
unsigned long
|
|||
|
MIDL_user_size(
|
|||
|
IN void * Pointer
|
|||
|
);
|
|||
|
|
|||
|
//
|
|||
|
// Function Prototypes - private network routines.
|
|||
|
//
|
|||
|
|
|||
|
RPC_STATUS
|
|||
|
NetpBindRpc(
|
|||
|
IN LPTSTR servername,
|
|||
|
IN LPTSTR servicename,
|
|||
|
IN LPTSTR networkoptions,
|
|||
|
OUT RPC_BINDING_HANDLE * pBindingHandle
|
|||
|
);
|
|||
|
|
|||
|
// We do not need any longer NetpRpcStatusToApiStatus() mapping
|
|||
|
// But for now, rather than eliminating a few references to it in
|
|||
|
// the net tree, we just stub it out.
|
|||
|
|
|||
|
// NET_API_STATUS
|
|||
|
// NetpRpcStatusToApiStatus(
|
|||
|
// IN RPC_STATUS RpcStatus
|
|||
|
// );
|
|||
|
|
|||
|
#define NetpRpcStatusToApiStatus(RpcStatus) ((NET_API_STATUS)(RpcStatus))
|
|||
|
|
|||
|
RPC_STATUS
|
|||
|
NetpUnbindRpc(
|
|||
|
IN RPC_BINDING_HANDLE BindingHandle
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#endif // _RPCUTIL_
|
|||
|
|