1 /* NFSv4.1 client for Windows
2 * Copyright © 2012 The Regents of the University of Michigan
4 * Olga Kornievskaia <aglo@umich.edu>
5 * Casey Bodley <cbodley@umich.edu>
7 * This library is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation; either version 2.1 of the License, or (at
10 * your option) any later version.
12 * This library is distributed in the hope that it will be useful, but
13 * without any warranty; without even the implied warranty of merchantability
14 * or fitness for a particular purpose. See the GNU Lesser General Public
15 * License for more details.
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with this library; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22 #ifndef _NFS41_DRIVER_
23 #define _NFS41_DRIVER_
25 #define NFS41_DEVICE_NAME L"\\Device\\nfs41_driver"
26 #define NFS41_SHADOW_DEVICE_NAME L"\\??\\nfs41_driver"
27 #define NFS41_USER_DEVICE_NAME L"\\\\.\\nfs41_driver"
28 #define NFS41_USER_DEVICE_NAME_A "\\\\.\\nfs41_driver"
29 #define NFS41_PROVIDER_NAME_A "NFS41 Network"
30 #define NFS41_PROVIDER_NAME_U L"NFS41 Network"
32 #define NFS41_PIPE_NAME L"\\Device\\nfs41_pipe"
33 #define NFS41_SHADOW_PIPE_NAME L"\\??\\nfs41_pipe"
34 #define NFS41_USER_PIPE_NAME L"\\\\.\\nfs41_pipe"
36 #define NFS41_SHARED_MEMORY_NAME L"\\BaseNamedObjects\\nfs41_shared_memory"
37 #define NFS41_USER_SHARED_MEMORY_NAME "Global\\nfs41_shared_memory"
39 // See "Defining I/O Control Codes" in WDK docs
40 #define _RDR_CTL_CODE(code, method) \
41 CTL_CODE(FILE_DEVICE_NETWORK_REDIRECTOR, 0x800 | (code), method, FILE_ANY_ACCESS)
43 #define IOCTL_NFS41_START _RDR_CTL_CODE(0, METHOD_BUFFERED)
44 #define IOCTL_NFS41_STOP _RDR_CTL_CODE(1, METHOD_NEITHER)
45 #define IOCTL_NFS41_GETSTATE _RDR_CTL_CODE(3, METHOD_NEITHER)
46 #define IOCTL_NFS41_ADDCONN _RDR_CTL_CODE(4, METHOD_BUFFERED)
47 #define IOCTL_NFS41_DELCONN _RDR_CTL_CODE(5, METHOD_BUFFERED)
48 #define IOCTL_NFS41_READ _RDR_CTL_CODE(6, METHOD_BUFFERED)
49 #define IOCTL_NFS41_WRITE _RDR_CTL_CODE(7, METHOD_BUFFERED)
50 #define IOCTL_NFS41_INVALCACHE _RDR_CTL_CODE(8, METHOD_BUFFERED)
52 typedef enum _nfs41_opcodes
{
81 typedef enum _nfs41_init_driver_state
{
82 NFS41_INIT_DRIVER_STARTABLE
,
83 NFS41_INIT_DRIVER_START_IN_PROGRESS
,
84 NFS41_INIT_DRIVER_STARTED
85 } nfs41_init_driver_state
;
87 typedef enum _nfs41_start_driver_state
{
88 NFS41_START_DRIVER_STARTABLE
,
89 NFS41_START_DRIVER_START_IN_PROGRESS
,
90 NFS41_START_DRIVER_STARTED
,
91 NFS41_START_DRIVER_STOPPED
92 } nfs41_start_driver_state
;