3.1.4.1.6 NetrDfsGetInfo (Opnum 4)
The NetrDfsGetInfo method returns information about a DFS root or a DFS link of the specified DFS namespace.
The NetrDfsGetInfo method has the following MIDL syntax.
-
NET_API_STATUS NetrDfsGetInfo( [in, string] WCHAR* DfsEntryPath, [in, unique, string] WCHAR* ServerName, [in, unique, string] WCHAR* ShareName, [in] DWORD Level, [out, switch_is(Level)] DFS_INFO_STRUCT* DfsInfo );
DfsEntryPath: The pointer to a DFS root or a DFS link path.
ServerName: This parameter MUST be a NULL pointer for Level_50 and MUST be ignored for other levels.
ShareName: This parameter MUST be a NULL pointer for Level_50 and MUST be ignored for other levels.
Level: This parameter specifies the information level of the data and, in turn, determines the action the method performs.
-
Value
Meaning
Level_1
0x00000001
Returns the name of the DFS root or the DFS link.
Level_2
0x00000002
Returns the name, comment, state, and number of targets for the DFS root or the DFS link.
Level_3
0x00000003
Returns the name, comment, state, number of targets, and target information for the DFS root or the DFS link.
Level_4
0x00000004
Returns the name, comment, state, time-out, GUID, number of targets, and target information for the DFS root or the DFS link.
Level_5
0x00000005
Returns the name, comment, state, time-out, GUID, property flags, metadata size, and number of targets for the DFS root or the DFS link.
Level_6
0x00000006
Returns the name, comment, state, GUID, time-out, property flags, metadata size, number of targets, and target information for the DFS root or the DFS link.
Level_7
0x00000007
Returns the version number GUID of the DFS metadata. This value only applies to the DFS root.
Level_8
0x00000008
Returns the name, comment, state, time-out, GUID, property flags, metadata size, number of targets, and security descriptor associated with the DFS root or the DFS link.
Only stand-alone DFS namespaces and domainv2-based DFS namespaces are supported.
Level_9
0x00000009
Returns the name, comment, state, GUID, time-out, property flags, metadata size, number of targets, list of targets, and security descriptor for the DFS root or the DFS link.
Only stand-alone DFS namespaces and domainv2-based DFS namespaces are supported.
Level_50
0x00000032
Returns the DFS metadata version and capability information of an existing DFS namespace. This level is valid only for the DFS namespace root, not for DFS links. The ServerName and ShareName parameters MUST both be NULL.<58>
Level_100
0x00000064
Returns the comment associated with the root or DFS link specified in the DfsEntryPath parameter.
Level_150
0x00000096
Returns the security descriptor associated with a DFS link.
Only stand-alone DFS namespaces and domainv2-based DFS namespaces are supported.
-
The server MUST support Level values 1-3 and 100. The server SHOULD support Level values 4-9, 50 and 150. If the server does not support the provided Level, it MUST fail the call.<59> The server SHOULD return error code ERROR_INVALID_PARAMETER for unsupported Level values.<60>
DfsInfo: The pointer to a DFS_INFO_STRUCT union to receive the returned information. The case of the union is selected by the value of the Level parameter.
Return Values: The method MUST return 0 on success and a nonzero error code on failure. The method can return any specific error code value, as specified in [MS-ERREF] section 2.2. The most common error codes are listed in the following table.
-
Return value/code
Description
0x00000000
ERROR_SUCCESS
Successful completion.
0x00000032
ERROR_NOT_SUPPORTED
The specified operation is not supported.
0x00000057
ERROR_INVALID_PARAMETER
An incorrect parameter was specified.
0x00000490
ERROR_NOT_FOUND
The specified DFS root or DFS link, or DFS link or root target does not exist.
The server MUST verify the existence of the DFS namespace that the DfsEntryPath parameter specifies. If the namespace does not exist, the server MUST return ERROR_NOT_FOUND.
The server MUST verify the existence of the DFS link that the DfsEntryPath parameter specifies. If that existence check fails, the server MUST return ERROR_NOT_FOUND.
Value |
DFS metadata field |
---|---|
1 (0x00000001) |
The Prefix field of NamespaceElement. |
2 (0x00000002) |
In addition to those for Level 1: the Comment and State fields of NamespaceElement and the TargetCount field of TargetsList. |
3 (0x00000003) |
In addition to those for Level 2: Target entries in the TargetsList. |
4 (0x00000004) |
In addition to those for Level 3: the ReferralTTL and IdentityGUID fields of NamespaceElement. |
5 (0x00000005) |
In addition to those for Level 4: the Properties field of NamespaceElement, and the size of the DFS namespace metadata,<61> but excluding Target entries. |
6 (0x00000006) |
In addition to those for Level 5: Target entries in the TargetsList. |
7 (0x00000007) |
The value of GenerationGUID attribute of the Namespace object. |
8 (0x00000008) |
In addition to those for Level 5: SecurityDescriptor of the NamespaceElement. |
9 (0x00000009) |
In addition to those for Level 6: SecurityDescriptor of the NamespaceElement. |
50 (0x00000032) |
No metadata attribute stores this data. The value returned MUST, however, be one of the values defined in the table in section 2.2.3.10. |
100 (0x00000064) |
Comment in NamespaceElement. |
150 (0x00000096) |
SecurityDescriptor of the NamespaceElement. |
For a standalone DFS namespace, the server MUST identify a consistent GUID for the specified DFS link or DFS root path. This value MUST conform to the expectations of UUID uniqueness provided by [RFC4122] or [C706], though those specific algorithms are not required. This GUID value MUST be used when responding to calls specifying a Level parameter whose corresponding return structure provides the GUID: values of 4, 5, 6, 8, or 9.
The server MUST use the following fields in the DFS metadata for a stand-alone DFS namespace to return the required information, depending on the value of the Level parameter.
The server MUST use the following fields in the DFS metadata for a domainv1-based DFS namespace to return the required information, depending on the value of the Level parameter.
Value |
DFS metadata field |
---|---|
1 (0x00000001) |
The PrefixSize and Prefix fields of DFSRootOrLinkIDBLOB. |
2 (0x00000002) |
In addition to those for Level 1: the CommentSize, Comment, and State fields of DFSRootOrLinkIDBLOB and the TargetCount field of DFSTargetListBLOB. |
3 (0x00000003) |
In addition to those for Level 2: TargetEntryBLOB. |
4 (0x00000004) |
In addition to those for Level 3: the ReferralTTL field of DFSNamespaceRootBLOB or DFSNamespaceLinkBLOB; the RootOrLinkGuid field of DFSRootOrLinkIDBLOB. |
5 (0x00000005) |
In addition to those for Level 4: the RootOrLinkGuid field of DFSRootOrLinkIDBLOB, the Type field of DFSRootOrLinkIDBLOB, and the Size field of the value stored in the pKT attribute of the DFS namespace's object, but excluding TargetEntryBLOB. |
6 (0x00000006) |
In addition to those for Level 5: TargetEntryBLOB. |
7 (0x00000007) |
The Value of pKTGuid attribute of the DFS namespace's object. |
50 (0x00000032) |
No metadata attribute stores this data. The value returned MUST, however, be one of the values defined in the table in section 2.2.3.10. |
100 (0x00000064) |
CommentSize and Comment in DFSRootOrLinkIDBLOB, and BLOBDataSize of DFSNamespaceLinkBLOB. |
Note that for interoperability, all root targets of a namespace SHOULD use the same encoding for this TargetTimestamp field, as specified in section 2.3.3.1.1.3.1.
The server MUST use the following fields in the DFS metadata for a domainv2-based DFS namespace to return the required information, depending on the value of the Level parameter.
Value |
DFS metadata field |
---|---|
1 (0x00000001) |
The msDFS-LinkPathv2 attribute. |
2 (0x00000002) |
In addition to those for Level 1: msDFS-Commentv2, msDFS-Propertiesv2, and the TargetCount field of msDFS-TargetListv2. |
3 (0x00000003) |
In addition to those for Level 2: msDFS-TargetListv2. |
4 (0x00000004) |
In addition to those for Level 3: msDFS-Ttlv2, msDFS-NamespaceIdentityGUIDv2 for DFS root, and msDFS-LinkIdentityGUIDv2 for DFS link. |
5 (0x00000005) |
In addition to those for Level 4: msDFS-Propertiesv2. Excludes msDFS-TargetListv2. |
6 (0x00000006) |
In addition to those for Level 4: msDFS-Propertiesv2. |
7 (0x00000007) |
The value of the msDFS-GenerationGUIDv2 attribute of the DFS namespace's object. |
8 (0x00000008) |
In addition to those for Level 5: msDFS-LinkSecurityDescriptorv2. |
9 (0x00000009) |
In addition to those for Level 6: msDFS-LinkSecurityDescriptorv2. |
50 (0x00000032) |
The msDFS-SchemaMajorVersion and msDFS-SchemaMinorVersion attributes. |
100 (0x00000064) |
The msDFS-Commentv2 attribute. |
150 (0x00000096) |
The msDFS-LinkSecurityDescriptorv2 attribute. |