summaryrefslogtreecommitdiffstats
path: root/private/nw/inc/nds.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/nw/inc/nds.h226
1 files changed, 226 insertions, 0 deletions
diff --git a/private/nw/inc/nds.h b/private/nw/inc/nds.h
new file mode 100644
index 000000000..76728bcfb
--- /dev/null
+++ b/private/nw/inc/nds.h
@@ -0,0 +1,226 @@
+/*++
+
+Copyright (c) 1995 Microsoft Corporation
+
+Module Name:
+
+ Nds.h
+
+Abstract:
+
+ This defines the necessary NDS data structures and
+ symbolic constants for both kernel and user mode
+ components.
+
+Author:
+
+ Cory West [CoryWest] 08-Jan-1996
+
+Revision History:
+
+--*/
+
+//
+// NDS Actions.
+//
+
+#define NDS_REQUEST 104 // NCP Function Number.
+#define NDS_PING 1 // Subfunction code for ping.
+#define NDS_ACTION 2 // Subfunction code for action.
+
+//
+// NDS Verb Numbers.
+//
+
+#define NDSV_RESOLVE_NAME 1
+#define NDSV_READ_ENTRY_INFO 2
+#define NDSV_READ 3
+#define NDSV_LIST 5
+#define NDSV_OPEN_STREAM 27
+#define NDSV_GET_SERVER_ADDRESS 53
+#define NDSV_CHANGE_PASSWORD 55
+#define NDSV_BEGIN_LOGIN 57
+#define NDSV_FINISH_LOGIN 58
+#define NDSV_BEGIN_AUTHENTICATE 59
+#define NDSV_FINISH_AUTHENTICATE 60
+#define NDSV_LOGOUT 61
+
+//
+// Rounding Macros.
+//
+
+#define ROUNDUP4(x) ( ( (x) + 3 ) & ( ~3 ) )
+#define ROUNDUP2(x) ( ( (x) + 1 ) & ( ~1 ) )
+
+//
+// Context Flags.
+//
+
+#define FLAGS_DEREF_ALIASES 0x1
+#define FLAGS_XLATE_STRINGS 0x2
+#define FLAGS_TYPELESS_NAMES 0x4
+#define FLAGS_ASYNC_MODE 0x8 // Not supported.
+#define FLAGS_CANONICALIZE_NAMES 0x10
+#define FLAGS_ALL_PUBLIC 0x1f
+
+//
+// values for RESOLVE_NAME request flags
+//
+
+#define RSLV_DEREF_ALIASES 0x40
+#define RSLV_READABLE 0x02
+#define RSLV_WRITABLE 0x04
+#define RSLV_WALK_TREE 0x20
+#define RSLV_CREATE_ID 0x10
+#define RSLV_ENTRY_ID 0x1
+
+#define RESOLVE_NAME_ACCEPT_REMOTE 1
+#define RESOLVE_NAME_REFER_REMOTE 2
+
+//
+// Confidence Levels.
+//
+
+#define LOW_CONF 0
+#define MED_CONF 1
+#define HIGH_CONF 2
+
+//
+// Referral Scopes.
+//
+
+#define ANY_SCOPE 0
+#define COUNTRY_SCOPE 1
+#define ORGANIZATION_SCOPE 2
+#define LOCAL_SCOPE 3
+
+//
+// Max name sizes.
+//
+
+#define MAX_NDS_SCHEMA_NAME_CHARS 32
+
+#define MAX_NDS_NAME_CHARS 256
+#define MAX_NDS_NAME_SIZE ( MAX_NDS_NAME_CHARS * 2 )
+#define MAX_NDS_TREE_NAME_LEN 32
+
+//
+// For an NDS exchange, we use buffers of this size to hold the send
+// and receive data. These sizes come from the Win95 implementation.
+//
+
+#define NDS_BUFFER_SIZE 2048
+#define DUMMY_ITER_HANDLE ( ( unsigned long ) 0xffffffff )
+#define INITIAL_ITERATION ( ( unsigned long ) 0xffffffff )
+#define ENTRY_INFO_NAME_VALUE 1
+
+//
+// Various server responses.
+//
+
+typedef struct {
+
+ DWORD CompletionCode;
+ DWORD RemoteEntry;
+ DWORD EntryId;
+ DWORD ServerNameLength;
+ WCHAR ReferredServer[1];
+
+ //
+ // If RemoteEntry is set to RESOLVE_NAME_REFER_REMOTE,
+ // Then the tree server doesn't know the information
+ // about the object in question and has referred us to
+ // the server named in ReferredServer.
+ //
+
+} NDS_RESPONSE_RESOLVE_NAME, *PNDS_RESPONSE_RESOLVE_NAME;
+
+typedef struct {
+
+ DWORD CompletionCode;
+ DWORD EntryFlags;
+ DWORD SubordinateCount;
+ DWORD ModificationTime;
+
+ //
+ // Two UNICODE strings follow in standard NDS format:
+ //
+ // DWORD BaseClassLen;
+ // WCHAR BaseClass[BaseClassLen];
+ // DWORD EntryNameLen;
+ // WCHAR EntryName[EntryNameLen];
+ //
+
+} NDS_RESPONSE_GET_OBJECT_INFO, *PNDS_RESPONSE_GET_OBJECT_INFO;
+
+typedef struct {
+
+ DWORD EntryId;
+ DWORD Flags;
+ DWORD SubordinateCount;
+ DWORD ModificationTime;
+
+ //
+ // Two UNICODE strings follow in standard NDS format:
+ //
+ // DWORD BaseClassLen;
+ // WCHAR BaseClass[BaseClassLen];
+ // DWORD EntryNameLen;
+ // WCHAR EntryName[EntryNameLen];
+ //
+
+} NDS_RESPONSE_SUBORDINATE_ENTRY, *PNDS_RESPONSE_SUBORDINATE_ENTRY;
+
+typedef struct {
+
+ DWORD CompletionCode;
+ DWORD IterationHandle;
+ DWORD SubordinateEntries;
+
+ //
+ // Followed by an array of NDS_SUBORDINATE_ENTRY
+ // structures that is SubordinateEntries long.
+ //
+
+} NDS_RESPONSE_SUBORDINATE_LIST, *PNDS_RESPONSE_SUBORDINATE_LIST;
+
+typedef struct {
+
+ DWORD SyntaxID;
+ DWORD AttribNameLength;
+ WCHAR AttribName[1];
+
+ //
+ // AttribName is of length
+ // AttribNameLength, of course.
+ //
+
+ DWORD NumValues;
+
+ //
+ // Followed by an array of NumValues
+ // Attrib structures.
+ //
+
+} NDS_ATTRIBUTE, *PNDS_ATTRIBUTE;
+
+typedef struct {
+
+ DWORD CompletionCode;
+ DWORD IterationHandle;
+ DWORD InfoType;
+ DWORD NumAttributes;
+
+ //
+ // Followed by an array of
+ // NDS_ATTRIBUTE structures.
+ //
+
+} NDS_RESPONSE_READ_ATTRIBUTE, *PNDS_RESPONSE_READ_ATTRIBUTE;
+
+typedef struct {
+ DWORD dwLength;
+ WCHAR Buffer[1];
+} NDS_STRING, *PNDS_STRING;
+
+