Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This section applies only to servers that implement the SMB 3.x dialect family.
When the server receives a request with an SMB2 header with a Command value equal to SMB2 IOCTL and a CtlCode of FSCTL_QUERY_NETWORK_INTERFACE_INFO, message handling proceeds as follows:
If the server receives a request that is not signed, the server MAY fail the request with STATUS_ACCESS_DENIED.
If Connection.Dialect does not belong to the SMB 3.x dialect family or Connection.ServerCapabilities does not include SMB2_GLOBAL_CAP_MULTI_CHANNEL, the server MAY fail the request with STATUS_NOT_SUPPORTED.
Otherwise, the server MUST enumerate the local network interfaces in an implementation-specific manner. For each IP address in each network interface, the server MUST construct a NETWORK_INTERFACE_INFO structure as specified in section 2.2.32.5, with the following values:
The server MUST NOT include the IP address for a network interface with IfIndex equal to zero.
IfIndex, Capability, and LinkSpeed MUST be set in an implementation-specific manner.
The Family field in SockAddr_Storage MUST be set based on the IP address format. The Buffer field in SockAddr_Storage MUST be set as specified in section 2.2.32.5.1.
If a network interface has multiple IP addresses, IfIndex MUST be the same in all NETWORK_INTERFACE_INFO structures for those IP addresses.
The server MUST construct an SMB2 IOCTL Response by following the syntax specified in section 2.2.32, with the exception of the following values:
The CtlCode field MUST be set to FSCTL_QUERY_NETWORK_INTERFACE_INFO.
The FileId field MUST be set to { 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF }.
InputOffset SHOULD be set to the offset, in bytes, from the beginning of the SMB2 header to the Buffer[] field of the response.
InputCount SHOULD be set to zero.
OutputOffset MUST be set to InputOffset + InputCount, rounded up to a multiple of 8.
OutputCount MUST be set to the size of the NETWORK_INTERFACE_INFO that was previously constructed.
Flags MUST be set to zero.
The server MUST copy the constructed array of NETWORK_INTERFACE_INFO structures into the Buffer field at the OutputOffset that was previously computed.
The response MUST be sent to the client.