public void BVT_Negotiate_Compatible_Wildcard()
        {
            //Send wildcard revision number to verify if the server supports SMB2.1 or future dialect revisions.
            BaseTestSite.Log.Add(
                LogEntryKind.TestStep,
                "Send MultiProtocolNegotiate request with dialects: SMB 2.002, SMB 2.???");
            string[] dialects          = new string[] { "SMB 2.002", "SMB 2.???" };
            bool     isSmb2002Selected = false;

            status = client.MultiProtocolNegotiate(
                dialects,
                (Packet_Header header, NEGOTIATE_Response response) =>
            {
                BaseTestSite.Log.Add(
                    LogEntryKind.Debug,
                    "The selected dialect is " + response.DialectRevision);
                if (TestConfig.MaxSmbVersionSupported == DialectRevision.Smb2002)
                {
                    BaseTestSite.Assert.AreEqual(
                        DialectRevision.Smb2002,
                        response.DialectRevision,
                        "The server is expected to use dialect: {0}", DialectRevision.Smb2002);
                    isSmb2002Selected = true;
                }
                else
                {
                    BaseTestSite.Assert.AreEqual(
                        DialectRevision.Smb2Wildcard,
                        response.DialectRevision,
                        "The server is expected to use dialect: {0}", DialectRevision.Smb2Wildcard);
                }
            });

            if (isSmb2002Selected)
            {
                return;
            }

            //According to server response, send new dialects for negotiation.
            BaseTestSite.Log.Add(
                LogEntryKind.TestStep,
                "Send Negotiate request with dialects: Smb2002, Smb21, Smb30, SMB302");
            status = client.Negotiate(
                Packet_Header_Flags_Values.NONE,
                TestConfig.RequestDialects,
                checker: (Packet_Header header, NEGOTIATE_Response response) =>
            {
                BaseTestSite.Assert.AreEqual(
                    Smb2Status.STATUS_SUCCESS,
                    header.Status,
                    "{0} should succeed, actually server returns {1}.", header.Command, Smb2Status.GetStatusCode(header.Status));
                CheckServerCapabilities(response);
            });
        }