/*++ Copyright (c) 1989-1996 Microsoft Corporation Module Name: ifsmrx.h Abstract: This module includes all IFS smaple mini redirector definitions shared between the utility, network provider DLL and teh mini redirector Notes: This module has been built and tested only in UNICODE environment --*/ #ifndef _IFSMRX_H_ #define _IFSMRX_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. #define IFSMRX_DEVICE_NAME_U L"IfsSampleMiniRedirector" #define IFSMRX_DEVICE_NAME_A "IfsSampleMiniRedirector" // The following constant defines the length of the above name. #define IFSMRX_DEVICE_NAME_U_LENGTH (24 * sizeof(WCHAR)) #define IFSMRX_DEVICE_NAME_A_LENGTH (24) #define IFSMRX_PROVIDER_NAME_U L"Ifs Sample Redirector Network" #define IFSMRX_PROVIDER_NAME_A "Ifs Sample Redirector Network" // The following constant defines the length of the above name. #define IFSMRX_PROVIDER_NAME_U_LENGTH (30 * sizeof(WCHAR)) #define IFSMRX_PROVIDER_NAME_A_LENGTH (30) #define DD_IFSMRX_FS_DEVICE_NAME_A "\\Device\\IfsSampleMiniRedirector" #define DD_IFSMRX_FS_DEVICE_NAME_U L"\\Device\\IfsSampleMiniRedirector" #define DD_IFSMRX_FS_DEVICE_NAME_U_LENGTH (32 * sizeof(WCHAR)) #define DD_IFSMRX_FS_DEVICE_NAME_A_LENGTH (32) #define IOCTL_RDR_BASE FILE_DEVICE_NETWORK_FILE_SYSTEM #define _IFSMRX_CONTROL_CODE(request, method, access) \ CTL_CODE(IOCTL_RDR_BASE, request, method, access) #define FSCTL_IFSMRX_START _IFSMRX_CONTROL_CODE(100, METHOD_BUFFERED, FILE_ANY_ACCESS) #define FSCTL_IFSMRX_STOP _IFSMRX_CONTROL_CODE(101, METHOD_BUFFERED, FILE_ANY_ACCESS) #define FSCTL_IFSMRX_DELETE_CONNECTION _IFSMRX_CONTROL_CODE(102, METHOD_BUFFERED, FILE_ANY_ACCESS) #define IFSMRXNP_MAX_DEVICES (26) // 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 _IFSMRXNP_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]; } IFSMRXNP_NETRESOURCE, *PIFSMRXNP_NETRESOURCE; typedef struct _IFSMRXNP_SHARED_MEMORY_ { INT HighestIndexInUse; INT NumberOfResourcesInUse; IFSMRXNP_NETRESOURCE NetResources[IFSMRXNP_MAX_DEVICES]; } IFSMRXNP_SHARED_MEMORY, *PIFSMRXNP_SHARED_MEMORY; #define IFSMRXNP_SHARED_MEMORY_NAME L"IFSMRXNPMEMORY" #define IFSMRXNP_MUTEX_NAME L"IFSMRXNPMUTEX" #endif // _IFSMRX_H_