public Smb2CloseResponsePacket CreateCloseResponse(
            Smb2Endpoint endpoint,
            ulong messageId,
            CLOSE_Response_Flags_Values flags,
            _FILETIME creationTime,
            _FILETIME lastAccessTime,
            _FILETIME lastWriteTime,
            _FILETIME changeTime,
            ulong allocationSize,
            ulong endofFile,
            File_Attributes fileAttributes
            )
        {
            Smb2CloseResponsePacket packet = new Smb2CloseResponsePacket();

            SetHeader(packet, endpoint, messageId);

            packet.PayLoad.AllocationSize = allocationSize;
            packet.PayLoad.ChangeTime = changeTime;
            packet.PayLoad.CreationTime = creationTime;
            packet.PayLoad.EndofFile = endofFile;
            packet.PayLoad.FileAttributes = fileAttributes;

            if (fileAttributes == File_Attributes.NONE)
            {
                packet.PayLoad.Flags = CLOSE_Response_Flags_Values.NONE;
            }
            else
            {
                packet.PayLoad.Flags = CLOSE_Response_Flags_Values.V1;
            }

            packet.PayLoad.LastAccessTime = lastAccessTime;
            packet.PayLoad.LastWriteTime = lastWriteTime;
            packet.PayLoad.Reserved = CLOSE_Response_Reserved_Values.V1;
            packet.PayLoad.StructureSize = CLOSE_Response_StructureSize_Values.V1;

            packet.Sign();

            return packet;
        }