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) 1989-1999 Microsoft Corporation
Module Name:
smbmrx.h
Abstract:
This module includes all SMB smaple mini redirector definitions shared between the control utility, network provider DLL and the mini redirector
Notes:
This module has been built and tested only in UNICODE environment
--*/
#ifndef _SMBMRX_H_
#define _SMBMRX_H_
// This file contains all the definitions that are shared across the multiple
// components that constitute the mini rdr -- the mini redirector driver,
// the net provider dll and the utility.
// The sample net provider id. This needs to be unique and
// should not be the same as any other network provider id.
#ifndef WNNC_NET_RDR2_SAMPLE
#define WNNC_NET_RDR2_SAMPLE 0x00250000
#endif
#define SMBMRX_DEVICE_NAME_U L"SmbSampleMiniRedirector"
#define SMBMRX_DEVICE_NAME_A "SmbSampleMiniRedirector"
#ifdef UNICODE
#define SMBMRX_DEVICE_NAME SMBMRX_DEVICE_NAME_U
#else
#define SMBMRX_DEVICE_NAME SMBMRX_DEVICE_NAME_A
#endif
// The following constant defines the length of the above name.
#define SMBMRX_DEVICE_NAME_A_LENGTH (24)
#define SMBMRX_PROVIDER_NAME_U L"SMB Sample Redirector Network"
#define SMBMRX_PROVIDER_NAME_A "SMB Sample Redirector Network"
#ifdef UNICODE
#define SMBMRX_PROVIDER_NAME SMBMRX_PROVIDER_NAME_U
#else
#define SMBMRX_PROVIDER_NAME SMBMRX_PROVIDER_NAME_A
#endif
// The following constant defines the length of the above name.
#define DD_SMBMRX_FS_DEVICE_NAME_U L"\\Device\\SmbSampleMiniRedirector"
#define DD_SMBMRX_FS_DEVICE_NAME_A "\\Device\\SmbSampleMiniRedirector"
#ifdef UNICODE
#define DD_SMBMRX_FS_DEVICE_NAME DD_SMBMRX_FS_DEVICE_NAME_U
#else
#define DD_SMBMRX_FS_DEVICE_NAME DD_SMBMRX_FS_DEVICE_NAME_A
#endif
#define SMBMRX_MINIRDR_PARAMETERS \
L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\SmbMRx\\Parameters" //
// The Devicename string required to access the mini-redirector device from
// User Mode
//
// WARNING The next two strings must be kept in sync. Change one and you must change the
// other. These strings have been chosen such that they are unlikely to
// coincide with names of other drivers.
//
#define DD_SMBMRX_USERMODE_SHADOW_DEV_NAME_U L"\\??\\SmbMiniRdrDCN"
#define DD_SMBMRX_USERMODE_DEV_NAME_U L"\\\\.\\SmbMiniRdrDCN"
#define DD_SMBMRX_USERMODE_DEV_NAME_A "\\\\.\\SmbMiniRdrDCN"
#ifdef UNICODE
#define DD_SMBMRX_USERMODE_DEV_NAME DD_SMBMRX_USERMODE_DEV_NAME_U
#else
#define DD_SMBMRX_USERMODE_DEV_NAME DD_SMBMRX_USERMODE_DEV_NAME_A
#endif
// UM code use devioclt.h
// BEGIN WARNING WARNING WARNING WARNING
// The following are from the ddk include files and cannot be changed
//#define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014 // from ddk\inc\ntddk.h
//#define METHOD_BUFFERED 0
//#define FILE_ANY_ACCESS 0
// END WARNING WARNING WARNING WARNING
#define IOCTL_RDR_BASE FILE_DEVICE_NETWORK_FILE_SYSTEM
#define _RDR_CONTROL_CODE(request, method, access) \
CTL_CODE(IOCTL_RDR_BASE, request, method, access)
#define IOCTL_SMBMRX_START _RDR_CONTROL_CODE(100, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_SMBMRX_STOP _RDR_CONTROL_CODE(101, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_SMBMRX_GETSTATE _RDR_CONTROL_CODE(102, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SMBMRX_ADDCONN _RDR_CONTROL_CODE(125, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SMBMRX_DELCONN _RDR_CONTROL_CODE(126, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define SMBMRXNP_MAX_DEVICES (26)
typedef struct _SMBMRX_CONNECTINFO_ { DWORD ConnectionNameOffset; DWORD ConnectionNameLength; DWORD EaDataOffset; DWORD EaDataLength; BYTE InfoArea[1];
} SMBMRX_CONNECTINFO, *PSMBMRX_CONNECTINFO;
// The NP Dll updates a shared memory data structure to reflect the various
// drive mappings established from the various process. This shared memory
// is used in maintaining the data structures required for enumeration as
// well.
typedef struct _SMBMRXNP_NETRESOURCE_ { BOOL InUse; USHORT LocalNameLength; USHORT RemoteNameLength; USHORT ConnectionNameLength; DWORD dwScope; DWORD dwType; DWORD dwDisplayType; DWORD dwUsage; WCHAR LocalName[MAX_PATH]; WCHAR RemoteName[MAX_PATH]; WCHAR ConnectionName[MAX_PATH]; WCHAR UserName[MAX_PATH]; WCHAR Password[MAX_PATH];
} SMBMRXNP_NETRESOURCE, *PSMBMRXNP_NETRESOURCE;
typedef struct _SMBMRXNP_SHARED_MEMORY_ { INT HighestIndexInUse; INT NumberOfResourcesInUse; SMBMRXNP_NETRESOURCE NetResources[SMBMRXNP_MAX_DEVICES];
} SMBMRXNP_SHARED_MEMORY, *PSMBMRXNP_SHARED_MEMORY;
#define SMBMRXNP_SHARED_MEMORY_NAME L"SMBMRXNPMEMORY"
#define SMBMRXNP_MUTEX_NAME L"SMBMRXNPMUTEX"
#define RDR_NULL_STATE 0
#define RDR_UNLOADED 1
#define RDR_UNLOADING 2
#define RDR_LOADING 3
#define RDR_LOADED 4
#define RDR_STOPPED 5
#define RDR_STOPPING 6
#define RDR_STARTING 7
#define RDR_STARTED 8
#ifndef min
#define min(a, b) ((a) > (b) ? (b) : (a))
#endif
#endif // _SMBMRX_H_
|