2010-10-11 14:59:26 -04:00
|
|
|
/* Copyright (c) 2010
|
|
|
|
|
* The Regents of the University of Michigan
|
|
|
|
|
* All Rights Reserved
|
|
|
|
|
*
|
|
|
|
|
* Permission is granted to use, copy and redistribute this software
|
|
|
|
|
* for noncommercial education and research purposes, so long as no
|
|
|
|
|
* fee is charged, and so long as the name of the University of Michigan
|
|
|
|
|
* is not used in any advertising or publicity pertaining to the use
|
|
|
|
|
* or distribution of this software without specific, written prior
|
|
|
|
|
* authorization. Permission to modify or otherwise create derivative
|
|
|
|
|
* works of this software is not granted.
|
|
|
|
|
*
|
|
|
|
|
* This software is provided as is, without representation or warranty
|
|
|
|
|
* of any kind either express or implied, including without limitation
|
|
|
|
|
* the implied warranties of merchantability, fitness for a particular
|
|
|
|
|
* purpose, or noninfringement. The Regents of the University of
|
|
|
|
|
* Michigan shall not be liable for any damages, including special,
|
|
|
|
|
* indirect, incidental, or consequential damages, with respect to any
|
|
|
|
|
* claim arising out of or in connection with the use of the software,
|
|
|
|
|
* even if it has been or is hereafter advised of the possibility of
|
|
|
|
|
* such damages.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef _NFS41_DRIVER_
|
|
|
|
|
#define _NFS41_DRIVER_
|
|
|
|
|
|
|
|
|
|
#define NFS41_DEVICE_NAME L"\\Device\\nfs41_driver"
|
|
|
|
|
#define NFS41_SHADOW_DEVICE_NAME L"\\??\\nfs41_driver"
|
|
|
|
|
#define NFS41_USER_DEVICE_NAME L"\\\\.\\nfs41_driver"
|
|
|
|
|
#define NFS41_USER_DEVICE_NAME_A "\\\\.\\nfs41_driver"
|
|
|
|
|
#define NFS41_PROVIDER_NAME_A "NFS41 Network"
|
|
|
|
|
#define NFS41_PROVIDER_NAME_U L"NFS41 Network"
|
|
|
|
|
|
|
|
|
|
#define NFS41_PIPE_NAME L"\\Device\\nfs41_pipe"
|
|
|
|
|
#define NFS41_SHADOW_PIPE_NAME L"\\??\\nfs41_pipe"
|
|
|
|
|
#define NFS41_USER_PIPE_NAME L"\\\\.\\nfs41_pipe"
|
|
|
|
|
|
|
|
|
|
#define NFS41_SHARED_MEMORY_NAME L"\\BaseNamedObjects\\nfs41_shared_memory"
|
|
|
|
|
#define NFS41_USER_SHARED_MEMORY_NAME "Global\\nfs41_shared_memory"
|
|
|
|
|
|
|
|
|
|
// See "Defining I/O Control Codes" in WDK docs
|
|
|
|
|
#define _RDR_CTL_CODE(code, method) \
|
|
|
|
|
CTL_CODE(FILE_DEVICE_NETWORK_REDIRECTOR, 0x800 | (code), method, FILE_ANY_ACCESS)
|
|
|
|
|
|
2010-11-05 20:08:55 -04:00
|
|
|
#define IOCTL_NFS41_START _RDR_CTL_CODE(0, METHOD_BUFFERED)
|
2010-10-11 14:59:26 -04:00
|
|
|
#define IOCTL_NFS41_STOP _RDR_CTL_CODE(1, METHOD_NEITHER)
|
|
|
|
|
#define IOCTL_NFS41_GETSTATE _RDR_CTL_CODE(3, METHOD_NEITHER)
|
|
|
|
|
#define IOCTL_NFS41_ADDCONN _RDR_CTL_CODE(4, METHOD_BUFFERED)
|
|
|
|
|
#define IOCTL_NFS41_DELCONN _RDR_CTL_CODE(5, METHOD_BUFFERED)
|
|
|
|
|
#define IOCTL_NFS41_READ _RDR_CTL_CODE(6, METHOD_BUFFERED)
|
|
|
|
|
#define IOCTL_NFS41_WRITE _RDR_CTL_CODE(7, METHOD_BUFFERED)
|
|
|
|
|
#define IOCTL_NFS41_INVALCACHE _RDR_CTL_CODE(8, METHOD_BUFFERED)
|
|
|
|
|
|
|
|
|
|
typedef enum _nfs41_opcodes {
|
|
|
|
|
NFS41_MOUNT,
|
|
|
|
|
NFS41_UNMOUNT,
|
|
|
|
|
NFS41_OPEN,
|
|
|
|
|
NFS41_CLOSE,
|
|
|
|
|
NFS41_READ,
|
|
|
|
|
NFS41_WRITE,
|
|
|
|
|
NFS41_LOCK,
|
|
|
|
|
NFS41_UNLOCK,
|
|
|
|
|
NFS41_DIR_QUERY,
|
|
|
|
|
NFS41_FILE_QUERY,
|
|
|
|
|
NFS41_FILE_SET,
|
|
|
|
|
NFS41_EA_SET,
|
2010-09-23 12:19:21 -04:00
|
|
|
NFS41_SYMLINK,
|
2010-10-11 14:59:26 -04:00
|
|
|
NFS41_VOLUME_QUERY,
|
|
|
|
|
NFS41_SHUTDOWN,
|
|
|
|
|
INVALID_OPCODE
|
|
|
|
|
} nfs41_opcodes;
|
|
|
|
|
|
|
|
|
|
typedef enum _nfs41_init_driver_state {
|
|
|
|
|
NFS41_INIT_DRIVER_STARTABLE,
|
|
|
|
|
NFS41_INIT_DRIVER_START_IN_PROGRESS,
|
|
|
|
|
NFS41_INIT_DRIVER_STARTED
|
|
|
|
|
} nfs41_init_driver_state;
|
|
|
|
|
|
|
|
|
|
typedef enum _nfs41_start_driver_state {
|
|
|
|
|
NFS41_START_DRIVER_STARTABLE,
|
|
|
|
|
NFS41_START_DRIVER_START_IN_PROGRESS,
|
|
|
|
|
NFS41_START_DRIVER_STARTED,
|
|
|
|
|
NFS41_START_DRIVER_STOPPED
|
|
|
|
|
} nfs41_start_driver_state;
|
|
|
|
|
#endif
|