Windows: afslogon.dll is not a file system interface
authorJeffrey Altman <jaltman@your-file-system.com>
Fri, 26 Aug 2011 17:57:15 +0000 (13:57 -0400)
committerDerrick Brashear <shadow@dementix.org>
Mon, 29 Aug 2011 20:26:15 +0000 (13:26 -0700)
Do not return a file system network type that corresponds
to a real file system inter since afslogon is in fact not
associated with a file system interface.  We can't return
WNNC_NET_NONE (0) because that prevents NPLogonNotify()
from being executed.  However, if we return an in use
file system value that can confuse the system when the
actual file system's network provider is also installed.

Change-Id: I845bc633f17f21946ce7de796d66c0bb429005cd
Reviewed-on: http://gerrit.openafs.org/5313
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

src/WINNT/afsd/afslogon.c

index c34db83..34b21b3 100644 (file)
@@ -224,8 +224,17 @@ DWORD APIENTRY NPGetCaps(DWORD index)
 {
     switch (index) {
     case WNNC_NET_TYPE:
-        /* Don't have our own type; use somebody else's. */
-        return WNNC_NET_OPENAFS;
+        /*
+         * The purpose of this response is to let the system
+         * know which file system the network provider is associated with
+         * Microsoft issues these values starting from 1 with the exception
+         * of WNNC_CRED_MANAGER which is 0xFFFF.  The provider type is
+         * stored in the hiword.  Pick a value that is unused.
+         */
+        return 0x1FFF0000;
+
+    case WNNC_SPEC_VERSION:
+        return WNNC_SPEC_VERSION51;
 
     case WNNC_START:
         /* Say we are already started, even though we might wait after we receive NPLogonNotify */